关于虚拟环境、PATH 变量和命令行的问题

21 浏览
0 Comments

关于虚拟环境、PATH 变量和命令行的问题

如果我在我的计算机上全局安装了一个Python包,并将该包的位置添加到我的PATH变量中,那么每次我想要执行时,命令行就可以找到它,而无需我输入完整的路径。

那么在虚拟环境中,这是如何工作的呢?例如,我刚刚在我的项目的激活虚拟环境中使用了pip install ffmpeg。我可以在venv/Lib/site-packages文件夹中看到它,但我的命令行找不到它。我应该如何在虚拟环境中添加ffmpeg的位置,类似于添加到我的PATH变量中?

0
0 Comments

问题出现的原因是没有在激活虚拟环境下运行pip命令。可以通过查看模块的__file__属性来确认当前运行的位置。在没有激活虚拟环境下,pip被运行在Anaconda3的site-packages目录下;而在激活虚拟环境后,pip被运行在虚拟环境的site-packages目录下。

解决方法是在运行pip命令前激活虚拟环境,可以通过在命令前加上"."来激活虚拟环境。此外,还提到了如果无法使用__file__属性进行检查时,可以参考链接中的答案获得更多选项。

此外,还提到了在UNIX系统中,环境变量不是全局的,使用"."或"source"命令可以确保脚本所做的更改在当前shell的上下文中进行,而不是在子shell中进行。

总结起来,为了在虚拟环境中运行pip命令,需要先激活虚拟环境,然后再运行命令。

0