使用虚拟环境时安装python模块

时间:2018-01-24 12:54:14

标签: python virtualenv

几个月前,我开始用Python开发。我正在使用虚拟环境,因为我在后面的教程中强烈建议使用Python绑定安装OpenCV。我想知道安装新模块的最佳实践是什么(在Ubuntu上)。虚拟环境的名称为cv。从命令行安装时,我是否应该在虚拟环境中?即我应该输入

pip3 install modulename

workon cv
pip3 install modulename

或两者兼而有之?它应该有所作为吗?

3 个答案:

答案 0 :(得分:3)

virtualenv做什么?

virtualenv将本地python解释器复制到一个文件夹中,一旦激活,将其位置预先设置为PATH - 意味着坐在那里的python可执行文件将用于运行python代码。从本质上讲,就是这样。

如何激活它/检查它是否处于活动状态?

使用virtualenv venv创建virtualenv之后,您可以使用source ./venv/bin/activate - 已完成激活它。

如果您不确定venv是否处于活动状态,通常可以查看命令行,该命令行将包含如下名称:(venv) user@workstation:~$。或者,您可以运行python -c "import sys; print(sys.executable)",然后打印venv的位置而不是/usr/bin/python,或者系统默认值。

由于很多人使用PyCharm,请按照these instructions在IDE中使用venv。它简单方便,所以如果你使用PyCharm,我建议你用它来处理你的静脉。

为什么我要这么做?

将开发环境彼此隔离可以为您节省很多头疼的麻烦。也许你想尝试最新的python开发版,而不是在你宝贵的系统上释放它,也许你需要不同版本的python包用于不同的项目。保持执行环境静态,因为源代码更改通常是一个非常好的主意。

如何将软件包安装到虚拟环境中?

默认情况下,安装软件包所需的工具setuptoolspipwheel已经打包到新创建的venv中,您只需安装一个包{ {1}}。注意 不要使用sudo ,因为这会将执行用户更改为root并绕过venv-activation。

一些用例

  • pip install package_name - 我想使用与我的默认解释器不同的python解释器,例如virtualenv -p pyhton3.7 venvNeeds an installation of said python interpreter on the system <!/ LI>
  • python3.7 - 我想使用已经与venv中使用的python解释器一起安装的所有软件包。如果你经常使用像numpy这样的大包,那就很有用。
  • virtualenv --system-site-packages venv - 从github克隆项目(并virtualenv venv && source ./venv/bin/activate && pip install -r requirements.txt进入它)后,为它设置一个工作独立的python环境。

答案 1 :(得分:1)

在第一种情况下,软件包将安装在系统的Python(3)目录中。在第二个,他们将安装在你的virtualenv。取决于你想要的结果......

答案 2 :(得分:1)

是的,您需要处于要安装软件包的虚拟环境中。每个新环境都与其他环境分开,并且与您的全局python环境分开。这是虚拟环境的好处,因为在处理另一个项目时,您不会遇到与其他软件包冲突的软件包。

相关问题