ydf0509 / nb_log

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

用pyinstaller无法将nb_log打包 #31

Closed simonliu009 closed 1 year ago

simonliu009 commented 2 years ago

使用Ubuntu/pyenv虚拟环境,我已经指定了pyenv虚拟环境库文件的文件夹了,nb_log在虚拟环境site-packages文件夹里面也能找到。例如使用名为myenv1的虚拟环境的时候,打包命令如下: pyinstaller -F ./login.py -p ~/.pyenv/versions/myenv1/lib/python3.8/site-packages/,/usr/local/lib/python3.8/dist-packages,/usr/lib/python3/dist-packages,/usr/lib/python3.8/dist-packages 打包出来的可执行文件还是提示:

File "login.py", line 10, in <module>
    from nb_log import get_logger
ModuleNotFoundError: No module named 'nb_log'
[5067] Failed to execute script 'login' due to unhandled exception!

直接执行py脚本是OK的。 不用nb_log,使用logging库也是OK的。

pxrgod commented 2 years ago

我也遇到了这个问题。但是我报错和你的还不一样 File "nb_log\set_nb_log_config.py", line 62, in use_config_form_nb_log_config_module File "importlibinit.py", line 127, in import_module File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'nb_log_config'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "main.py", line 7, in File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module File "common\logger.py", line 4, in File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module File "nb_log_init.py", line 2, in File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module File "nb_log\set_nb_log_config.py", line 110, in File "nb_log\set_nb_log_config.py", line 72, in use_config_form_nb_log_config_module File "nb_log\set_nb_log_config.py", line 107, in auto_creat_config_file_to_project_root_path File "shutil.py", line 261, in copyfile FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\PANXR3~1\AppData\Local\Temp_MEI275002\nb_log\nb_log_config_default.py' [29084] Failed to execute script 'main' due to unhandled exception!

不在虚拟环境下打包的可执行文件,执行却是可以的

ydf0509 commented 1 year ago

看文档9.4

https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#pyinstaller-no-such-file-nb-log-config-default-py

需要在pyinstaller打包时候生成的spec文件中去定义 hiddenimports 的值, hiddenimports=[’nb_log_config’] , 这样就会打包包括nb_log_config.py了,不会去自动新建配置文件了。

ydf0509 commented 1 year ago

看文档9.4 https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#pyinstaller-no-such-file-nb-log-config-default-py 需要在pyinstaller打包时候生成的spec文件中去定义 hiddenimports 的值, hiddenimports=[’nb_log_config’] , 这样就会打包包括nb_log_config.py了,不会去自动新建配置文件了。

hiddenimports

看文档9.4

https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#pyinstaller-no-such-file-nb-log-config-default-py

需要在pyinstaller打包时候生成的spec文件中去定义 hiddenimports 的值, hiddenimports=[’nb_log_config’] , 这样就会打包包括nb_log_config.py了,不会去自动新建配置文件了。