我已经在Linux中安装了pyinstaller,以便为我的Python脚本创建可执行文件,该脚本可以使用以下命令正常运行:
python3 exemplo.py
但是当我执行波纹管命令时:
pyinstaller --onefile example.py
我收到以下错误:
File "/home/pedro/.local/bin/pyinstaller", line 11, in <module>
sys.exit(run()) File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/__main__.py",
line 79, in run
import PyInstaller.building.build_main File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/building/build_main.py",
line 33, in <module>
from ..depend import bindepend File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/depend/bindepend.py",
line 26, in <module>
from . import dylib, utils File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/depend/utils.py",
line 25, in <module>
from ..lib.modulegraph import util, modulegraph File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/lib/modulegraph/util.py",
line 16, in <module>
from ._compat import StringIO, BytesIO, get_instructions, _READ_MODE File "/home/pedro/.local/lib/python2.7/site-packages/PyInstaller/lib/modulegraph/_compat.py",
line 29, in <module>
from dis3 import get_instructions ImportError: No module named dis3
怎么了?
我尝试安装dis3:
python3 -m pip install --user dis3
但是我仍然遇到相同的错误。
我已将其卸载...
python -m pip uninstall pyinstaller
根据建议再次安装。
python3 -m pip install --user pyinstaller
我已经设置了PATH变量:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/pedro/.local/bin
现在我收到消息:
pedro@pedro-pc:~/Documents/instabot/instabot_c.py$ python -m pyinstaller --onefile example.py
/usr/bin/python: No module named pyinstaller
确实...它未出现在点列表中:
pedro@pedro-pc:~/Documents/instabot/instabot_c.py/__pycache__$ pip list
/home/pedro/.local/lib/python2.7/site-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
warnings.warn(warning, RequestsDependencyWarning)
Package Version
-------------- ----------------------
altgraph 0.16.1
arandr 0.1.9
beautifulsoup4 4.4.1
certifi 2018.10.15
chardet 3.0.4
cryptography 1.2.3
defer 1.0.6
enum34 1.1.2
fake-useragent 0.1.11
future 0.17.1
html5lib 0.999
idna 2.7
ipaddress 1.0.16
lxml 3.5.0
macholib 1.11
numpy 1.11.0
pefile 2018.8.8
pip 18.1
psutil 3.4.2
pyasn1 0.1.9
pycurl 7.43.0
Pygments 2.1
pygobject 3.20.0
pyOpenSSL 0.15.1
pysqlite 2.7.0
python-apt 1.1.0b1+ubuntu0.16.4.2
python-debian 0.1.27
pyxdg 0.25
requests 2.20.0
scour 0.32
setuptools 20.7.0
six 1.10.0
urllib3 1.24
wheel 0.29.0
怎么了?
答案 0 :(得分:1)
您的项目是python3,但是在python2.7上运行的pyinstaller从2.7的python3安装中删除了软件包
从python2.7卸载pyinstaller
pip uninstall pyinstaller
为python3安装pyintaller
pip3 install pyinstaller
如果您想将这个软件包同时用于python2.7和3,请在python3上运行pyinstaller
python3 -m pyinstaller --onefile example.py
答案 1 :(得分:0)
pip和pip3将调用不同的python解释器(分别为2.7和3)。
类似地,python和python3也有所不同,如果您使用“ pip3 install pyinstaller”,而现在您正在调用“ python -m pyinstaller”,则解释器将在pip列表中搜索pyinstaller!相反,您想执行“ python3 -m pyinstaller”,然后它应该可以工作。
使用时:
pyinstaller --onefile example.py
您的pyinstaller是使用pip安装在python2.7中的,因此无法在您的pip3列表(python3)中找到名为dis3的模块。
这是设置pyinstaller的另一种方法,因此您可以在linux中直接使用“ pyinstaller yourfile.py”。
1)git clone https://github.com/pyinstaller/pyinstaller
2)cd pyinstaller,然后将CD放入引导加载器
3)运行“ python3 ./waf distclean all”以为您的系统构建引导程序。
4)构建引导程序后,键入:“ python3 setup.py install”
5)这应该已经安装了pyinstaller。在终端中输入pyinstaller并点击 输入。它应该可以识别该命令,但是会抱怨更多的参数。
6)使用命令“ pyinstaller yourfile.py”创建可执行文件。
如果要创建独立的一个文件可执行文件,请使用:“ pyinstaller --onefile yourfile.py”
希望这会有所帮助!
答案 2 :(得分:-1)
我按照此链接的说明进行操作:Python Issue 它解决了我提到的最后一个问题。