[英]pyinstaller Hidden import not found
我正在使用 pyinstaller。 在我的腳本中有:
import toml
config = toml.load('config.toml')
我編譯了我的腳本:
pyinstaller main.py --onefile --clean --name myApp
但是當我運行它給我的可執行文件時: ModuleNotFoundError: No module named 'toml'
所以我嘗試了這個:
pyinstaller main.py --hidden-import toml --onefile --clean --name myApp
現在 pyinstaller 說: ERROR: Hidden import 'toml' not found
找到了答案。 如果您使用的是虛擬環境(如 Pipenv、pyenv、venv),則需要在該環境的上下文中運行 pyinstaller。 所以...
pip install pyinstaller
python -m PyInstaller main.py ....
此外,正如 mosegui 所指出的,您應該將配置標志放在文件名之前:
pyinstaller --hidden-import toml --onefile --clean --name myApp main.py
雖然這是很久以前的事了,我不確定這對我來說是否真的是一個問題。
這些天我使用Poetry,所以一旦我有了 Poetry 環境,我就只需要poetry run pyinstaller ...
poetry shell
和/或poetry run pyinstaller ...
。 每當您使用poetry run <some cmd sequence>
它都會在當前虛擬環境的上下文中運行您的任何命令序列。 我相信pipenv run
完成了類似的事情,但 Poetry 對我來說總是更好。
我知道這是一個非常遲到的答案,但我會在這里留下一個觀察,以防有人發現自己處於類似情況:
即使您安裝了toml
, pyinstaller
也不會找到隱藏的導入,因為您在腳本名稱之后而不是之前傳遞配置標志,因此該命令會一直執行到您的腳本名稱並忽略其余部分。 嘗試:
pyinstaller --hidden-import toml --onefile --clean --name myApp main.py
而不是你當前的:
pyinstaller main.py --hidden-import toml --onefile --clean --name myApp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.