我试图使用pyinstaller将python代码转换为可执行文件。我正在使用pyinstaller = 3.5和setuptools = 41.2.0的ubuntu 18.04。运行可执行文件时,出现以下错误:
Using Theano backend.
Traceback (most recent call last):
File "main_test.py", line 25, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "code.py", line 2, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/__init__.py", line 3, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/utils/__init__.py", line 6, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/utils/conv_utils.py", line 9, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/backend/__init__.py", line 1, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/backend/load_backend.py", line 87, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/keras/backend/theano_backend.py", line 7, in <module>
File "/home/g2-test/anaconda3/envs/ashna/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages/theano/__init__.py", line 247, in <module>
ModuleNotFoundError: No module named 'theano.tensor.shared_randomstreams'
[6919] Failed to execute script main_test
我用过
pyinstaller --onefile main_test.py
生成可执行文件。我曾经使用过keras,但是在运行可执行文件时,它正在显示使用theano后端。 有人可以帮我解决这个问题。
答案 0 :(得分:1)
重新创建以下内容:
- your.code.files.py
- hooks
- hook-theano.py
在hook-theano.py
中:
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all('theano')
然后使用附加选项--addtional-hooks-dir=hooks
构建。
如果遇到其他问题,发现更多的模块未找到错误(例如,找不到mymod.pkg.func
),请在hooks
下创建一个名为hook-mymod.py
的新文件。
答案 1 :(得分:-2)
sudo pip3 install theano
如果无法识别命令pip3
,则假设安装了pip,请执行this来检查是否已安装pip。如果不是,请输入sudo apt-get install pip3