[问题] 虚拟环境中的pyinstaller

楼主: fragmentwing (片翼碎梦)   2023-08-12 21:34:31
如题
我在虚拟环境中安装的pyinstaller会一直往虚拟环境外面的site-package抓东西
大致上在 10445 INFO: Looking for dynamic libraries 之后
会列出一大堆路径
然后就可以看到pyinstaller开始往奇怪的路径上抓东西
另外,我用Auto-py-to-exe去抓额外档案时,发现虚拟环境中连matplotlib都找不到
打包完的档案用cmd去执行也是显示没有matplotlib
问gpt说是在程式里面用sys先砍光路径后新增路径
可是这样做又有别的问题......
之后试着用hidden import的方式把抓不到的matplotlib和nanoscope这两个抓进去
结果用cmd运行执行档的结果如下:
C:\Users\User\Desktop\myenv\dist>t
Traceback (most recent call last):
File "t.py", line 6, in <module>
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "nanoscope\__init__.py", line 7, in <module>
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "nanoscope\files\__init__.py", line 8, in <module>
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "nanoscope\files\base.py", line 11, in <module>
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "nanoscope\dll.py", line 81, in <module>
File "nanoscope\dll.py", line 38, in _load
File "os.py", line 1117, in add_dll_directory
FileNotFoundError: [WinError 3] 系统找不到指定的路径。:
'C:\\Users\\User\\AppData\\Local\\Temp\\_MEI149682\\nanoscope\\Lib\\64bit'
[24128] Failed to execute script 't' due to unhandled exception!
是有些site-package不该抱持能够用pyinstaller去包装的希望吗?
作者: gostjoke (鬼笑话)   2023-08-16 12:08:00
你虚拟环境需要先activate 后用pip重新灌需要的包建议虚拟环境直接重新安装-requirment进去你最后一行就显示cmd不是venv启动的虚拟包名\Scripts\activate
楼主: fragmentwing (片翼碎梦)   2023-08-16 19:11:00
我包装的时候是启动venv的 就像你说的那样 exe本身应该不需要venv才对(如果需要的话就没有弄成exe的意义了)补充说明 我有弄一个只有使用matplotlib的 就能执行
作者: lycantrope (阿宽)   2023-08-16 21:57:00
onefile?
楼主: fragmentwing (片翼碎梦)   2023-08-17 12:27:00
也试过了 其它像hidden import 之类也有会不会有的比较少见的package就是不能包?因为真的还没遇过这状况而且包的时候pyinstaller还会因为找不到东西跳出虚拟环境到外面抓……
作者: lycantrope (阿宽)   2023-08-17 14:44:00
error有写啊,手动把nanoscope加入exe内啊
楼主: fragmentwing (片翼碎梦)   2023-08-17 18:41:00
加了他不吃R 你是说hidden import没错吧
作者: lycantrope (阿宽)   2023-08-17 23:52:00
add-binary啊 你有google吗
楼主: fragmentwing (片翼碎梦)   2023-08-18 12:47:00
直接在pkg卡住 怒用nuitka竟然成功一次解决

Links booklink

Contact Us: admin [ a t ] ucptt.com