情况:
使用pycharm编写py文件,调试中运行没有问题
在文件夹下,直接点击py文件使用python.exe运行闪退/一闪而过,使用cmd运行后报错“ModuleNotFoundError: No module named 'xxx”
分析:
pycharm中编写程序时我是在虚拟环境下编写的,包括下载的模块(module)都是下载在虚拟环境中,在pycharm调试时全程是在虚拟环境下进行的,而cmd或python.exe运行则不是在该虚拟环境中
解决方法:
先进入虚拟环境,后运行。
程序的main.py函数有引用第三方模块的语句,所以需要另外新建一个入口函数enter.py (名字自定义),使用os.system()函数进入虚拟环境和运行main.py函数
代码enter.py:
import os
mycmd = r'D: && cd D:\project1\venv\Scripts && activate && cd D:\project1 && python "main.py"'
os.system(mycmd)
其中使用多条cmd语句,可以用&&整合成一条指令:
1. 移动至根目录D:\
2. 移动至工程文件的虚拟环境下得Scripts,这里有activate函数
3. 执行activate命令
4. 返回到main.py函数的路径
5. 执行python "main.py" 命令运行main.py函数