簡體   English   中英

pyinstaller 找不到隱藏的導入

[英]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 對我來說總是更好。

我知道這是一個非常遲到的答案,但我會在這里留下一個觀察,以防有人發現自己處於類似情況:

即使您安裝了tomlpyinstaller也不會找到隱藏的導入,因為您在腳本名稱之后而不是之前傳遞配置標志,因此該命令會一直執行到您的腳本名稱並忽略其余部分。 嘗試:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM