问题 Virtualenv

问题描述

只是想设置我的新 MacBookPro M1。这次我想组织我的MB,我想开始使用virtualenv。 所以,我到目前为止所做的:

  • 已安装 brew
  • 安装 virtualenv
  • 设置一个目录,在那里创建我的第一个名为 sec_env 的环境
  • 安装了一些测试包

现在我想使用我的 virtualenv:

  • 我开始了,源 sec_env/dir/activate
  • 现在我们开始了,我想在这个环境中编写一些代码。所以我启动了我的代码内部人员并尝试导入我已经安装的包....不起作用;((编辑1:也许我在 vs 代码中配置它失败了?)

我是否误解了 virtualenv 的使用?我认为它有点像虚拟机...所以我可以安装一个项目需要的包并对其进行编码。但是如果我在另一个项目上工作,我会切换,再次启动我的 vs-code 并继续编写另一个项目。

或者问题只是,我想编码的所有项目都必须在 virtualenv(sec_env) 的目录中?目前,我有一个目录 virtualenvs,用于存储我所有的环境,启动一个并切换到桌面工作。所有项目都在我的桌面上。

如果有人给我任何提示,或者用另一种方式将我的不同项目分开,那就太棒了。我对这个主题非常陌生,因为我之前使用过不同的虚拟盒图像......现在我不得不使用其他东西......M1 :D !

解决方法

您的理解通常是正确的,因为 virtualenv 是一种将项目的依赖项彼此分离的方法,就像 VM 一样。

您的代码不需要与您的虚拟环境位于同一目录中,但为了方便起见,许多人倾向于以这种方式组织它。这样您就无需考虑使用什么 venv 编码项目,因为它就在目录中。

按照你的步骤,我认为你在激活环境之前安装了一个包。按照该顺序执行此操作会将软件包安装在您的系统站点软件包中,而不是您的虚拟环境软件包中。在安装软件包之前,您需要激活您的环境。此外,从 How to tell Homebrew to install inside virtualenv? 看来,自制软件不支持将软件包安装到虚拟环境中。因此,为了将软件包安装到 virtualenv 中,我建议使用 pip 作为您的软件包管理器。

So the sequence of commands would be...
source <path to virtualenv>/dir/activate
pip install <modules you want to install>
# Now you can run your code that references those installed modules. 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...