测试代码:
## file name: test.py
import scanpy as sc
print(sc.__version__)然后使用pip安装scanpy
pip install scanpy==1.8.2
pip install pyinstaller==4.7我使用下面的命令行生成了exe文件:
python -m PyInstaller --noupx test.py然后我尝试运行test.exe。我得到了错误消息:
Traceback (most recent call last):
File "scanpy\_metadata.py", line 28, in <module>
File "pathlib.py", line 1221, in read_text
File "pathlib.py", line 1208, in open
File "pathlib.py", line 1063, in _opener
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\xie186\\PycharmProjects\\pitaya\\test_exe\\dist\\test\\pyproject.toml'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 1, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "scanpy\__init__.py", line 3, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "scanpy\_metadata.py", line 38, in <module>
File "scanpy\_compat.py", line 25, in pkg_metadata
File "importlib_metadata\__init__.py", line 984, in metadata
File "importlib_metadata\__init__.py", line 561, in from_name
importlib_metadata.PackageNotFoundError: No package metadata was found for scanpy
[20028] Failed to execute script 'test' due to unhandled exception!但是当我在pycharm中运行这个脚本时,它工作得很好。我检查了与此错误相关的代码:https://github.com/theislab/scanpy/blob/16e62d1336a95966238113cdb5ab50f7d9f880ce/scanpy/_metadata.py#L24
在pycharm中,try部件将失败,而except部件中的代码将被执行。但在exe文件中,似乎应用程序将在try部件失败后退出。
任何帮助都将不胜感激!
发布于 2021-12-05 04:09:22
添加--recursive-copy-metadata scanpy解决了我的问题:
python -m PyInstaller --recursive-copy-metadata scanpy --noupx ..\test.pyhttps://stackoverflow.com/questions/70227633
复制相似问题