我一直试图将程序转换为exe,但遇到了一些问题。它在编程环境(PyCharm)中运行时工作得很好,但当我把它变成exe并试图运行它时,它在启动时立即崩溃(当它应该保持控制台实例以显示它仍在运行并记录它正在做的事情时)。
我已经一点一点地浏览了我的脚本(注释掉了部分),看看这个错误是在哪里出现的,似乎每当导入这两个模块时,程序就会崩溃:
import requests
from dotenv import load_dotenv
下面的代码是我写的一个无休止打印代码的例子,当包括这些导入时,它也以同样的方式崩溃:
import os
import time
import requests
from dotenv import load_dotenv
while 1:
time.sleep(1)
print("Hello")
当我注释掉导入时,程序功能如预期:
import os
import time
# import requests
# from dotenv import load_dotenv
while 1:
time.sleep(1)
print("Hello")
我不知道为什么通过导入包含这些库会导致python编译器翻转。
注意:exe是在PyCharm环境中通过pyinstaller的以下终端命令生成的:
pyinstaller --onefile Hello.py
任何帮助都将不胜感激!!
我用命令";pip冻结";。这是我得到的:Windows CMD冻结
当我在我的pycharm终端上运行它时,我得到了这个:pycharm terminal冻结
尝试使用命令"在windows命令行上运行;py{name.py}";并得到以下两个错误:
1.
Traceback(最后一次调用):文件";C: \Users\Leland Fowler\Documents\Programing Projects\AirTable\XML WatchDog\WatchDog2.py";,第8行,in导入Airtable_API_Handler文件";C: \Users\Leland Fowler\Documents\Programing Projects\AirTable\XML WatchDog\AirTable_API_Handler.py";,第17行,in导入请求ModuleNotFoundError:没有名为"请求"的模块
Traceback(最后一次调用):文件";C: \Users\Leland Fowler\Documents\Programing Projects\AirTable\XML WatchDog\Hello.py",第5行,in导入dotenvModuleNotFoundError:没有名为"dotenv "的模块
然后我尝试使用pip运行安装(python-m pip安装请求python-dotenv),并得到以下消息:
需求已满足:c:\users\leland中的请求fowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(2.27.1)已满足要求:中的python dotenvc: \users\lelandfowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(0.19.2)已满足要求:urllib3<1.27,>1.21.1英寸c: \users\lelandfowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(来自请求)(1.26.8)已经满足的要求:idna<4,>2.5在c:\users\leland中fowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(根据请求)(3.3)已满足要求:证书>2017.4.17在c:\users\lelandfowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(根据请求)(2021.10.8)已满足要求:c:\users\leland中的字符集规范器~=2.0.0fowler\appdata\local\packages\pythonsoftwareundation.python.3.9_qbz5n2kra8p0\localcache\local packages\pyton39\site packages(来自请求)(2.0.10)警告:您使用的是pip 21.2.4版本;但是,21.3.1版本是可用的。您应该考虑升级通过"C:\Users\Leland"Fowler\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kra8p0\Python.exe-m pip install--升级pip命令。
现在我很困惑,因为我的系统似乎告诉我已经安装了这些模块,但它们没有显示在我的冻结中,并且似乎无法加载到我的程序中。。。
它最有可能是由于python中的环境,对于初学者来说似乎非常粗略运行以下命令:
pip freeze
它将显示安装在您的终端环境中的所有模块,这些模块可能与Pycharm 中的模块不同
注意,exe更像是代码的二进制形式——它没有运行,错误不会停止编译器(并非在所有情况下)
在运行命令"之后;pip冻结";检查模块";dotenv";是否在列表中
如果没有运行命令
pip install dotenv
然后用构建exe
pyinstaller --onefile {nameOfYourPythonFileWithNoCurlyBraces}
如果不尝试使用命令运行您的文件,它将解决问题
窗口:
py {nameOfYourPythonFileWithNoCurlyBraces}
mac/linux:
python3 {nameOfYourPythonFileWithNoCurlyBraces}
or
python {nameOfYourPythonFileWithNoCurlyBraces}
示例:
py Home.py
python3 Home.py
python Home.py
发送错误信息
编辑:
模块请求是在python中内置的,并且是在您安装python之后创建的,它本身就是
删除python并从这里安装最新版本肯定会被修复