ydf0509 / nb_log

pip install nb_log 各种日志handler和自动转化项目的任意print的效果。日志自动彩色炫酷,可点击控制台的日志自动精确跳转到pycharm的文件和行号。文件日志多进程切割安全。在10个最重要方面全方位超过loguru
378 stars 72 forks source link

使用pyinstaller打包程序后,无法运行,找不到默认配置文件nb_log_config_default.py #21

Closed TotoroQwQ closed 2 years ago

TotoroQwQ commented 2 years ago

image 又来了,好像不兼容pyinstaller打包,辛苦大佬看一下。感觉还是nb_log包和被引用的项目耦合性强了,强制指定了项目地址

ydf0509 commented 2 years ago

自己在项目中先生自动生成好这个文件就行了,也可以自己复制到项目根目录下

TotoroQwQ commented 2 years ago

自己在项目中先生自动生成好这个文件就行了,也可以自己复制到项目根目录下

试了下,将这个文件复制一份到项目根目录下面也不行,还是报这个文件找不到,这个路径也挺奇怪的,并不是工作路径。 重新试了一个单文件的最简单程序也不行。 image

ydf0509 commented 2 years ago

需要设置个 PYTHONPATH,或者就很low的在项目起点python脚本添加 sys.path.insert(1,项目根目录)

看pythonpath https://github.com/ydf0509/pythonpathdemo

print(sys.path[1]) 就能显示项目根目录了,

TotoroQwQ commented 2 years ago

需要设置个 PYTHONPATH,要么就很low的在项目起点python脚本添加 sys.path.insert(1,项目根目录)

打包后设置pythonpath还有用吗,设置了下,也是报错,我试试后者 image

TotoroQwQ commented 2 years ago

了解了一下pyinstaller原理,我是打包成onefile模式,最终是一个exe文件,但是运行时会在系统的临时文件夹里面生成一个目录,每次运行不一样,就是上面的那个奇怪的路径了,,,有点眉目,我试着改一下 https://blog.csdn.net/Mantana/article/details/112343895

ydf0509 commented 2 years ago

print(sys.path[1]),项目如果没从这个中间件找到nb_log_config.py 就会自动复制文件,关键你要知道你的sys.path[1]是什么现在。

TotoroQwQ commented 2 years ago

print(sys.path[1]),项目如果没从这个中间件找到nb_log_config.py 就会自动复制文件,关键你要知道你的sys.path[1]是什么现在。

现在不是pythonpath的问题,我在代码里面加了这个也没用。

sys.path.insert(1, 'c:\\Users\\chens\\Desktop\\test')。

影响不到打包编译后的代码,设不设置都打印的下面这个。👇

16:26:02  "nb_log\set_nb_log_config.py:40"   当前项目的根目录是:
 C:\Users\chens\AppData\Local\Temp\_MEI111602\lib-dynload    # 这是程序打印的初始

先不看这个,问题在于

这是拷贝的报错信息

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\chens\AppData\Local\Temp\_MEI111602\nb_log\nb_log_config_default.pyc'