在虚拟环境中使用命令行运行带有库的Python文件

8
我在Windows上使用Python 3.6,并使用PyCharm。我有一个.py文件,它使用安装在不同于.py文件的文件夹中的venv上的软件包。
我正在尝试从命令行运行此.py文件,但会出现“ModuleNotFoundError:No module named ''”错误。该文件可以在PyCharm中正常工作,但无法从命令行中工作,因为软件包位于venv中。
如何使文件在命令行中无错误运行并保持软件包在venv中?
非常感谢。
3个回答

9

您需要调用激活脚本来激活虚拟环境:

<path to your environment>\Scripts\activate.bat

此处所示。这样,当调用脚本时,您将自动使用在此环境中安装的所有软件包。您的pycharm可能已设置为自动使用虚拟环境。


@blountdj,你是否成功使用.bat文件进行设置?我不认为pycharm会为其环境生成它。我该如何获取它? - Kvothe
@Kvothe 它位于<您的项目目录>\venv\Scripts\activate.bat。这是PyCharm创建虚拟环境的默认位置。 - FlyingTeller
谢谢回复,但我的环境目录中不包含 Scripts。它包含名为 binincludeliblib64(仅链接)和 share 的目录。bin 目录中确实包含一个名为 activate 的文件,但它没有 .bat 扩展名。 - Kvothe
Ubuntu 20.04,使用Pycharm创建了环境。 - Kvothe
那很有道理。谢谢! - Kvothe
显示剩余2条评论

2

我认为最简单的方法是使用shebang,在Linux和Windows上都可以使用。对于Windows,您只需要在.py脚本文件的第一行添加#!.\venv\Scripts\python.exe


0

或者
source <你的环境路径>/bin/activate
在Linux上


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接