问题描述
只是想设置我的新 MacBookPro M1。这次我想组织我的MB,我想开始使用virtualenv。 所以,我到目前为止所做的:
现在我想使用我的 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.