情况:

  使用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函数