关于虚拟环境、PATH 变量和命令行的问题
Question about virtual environments, PATH variable and command line
如果我在我的计算机上全局安装一个 python 包,然后将该包的位置添加到我的 PATH 变量中,那么我的命令行可以找到它,而无需我每次都输入完整路径执行。
这在虚拟环境中如何工作?例如,我只是在项目激活的虚拟环境中使用了 pip install ffmpeg
。我可以在 venv/Lib/site-packages
文件夹中看到它,但我的命令行找不到它。我如何做相当于将 ffmpeg
的位置添加到我的 PATH 变量的虚拟环境?
正如 chepner 在他们上面的评论中提到的那样,如果您已经激活了虚拟环境,这应该已经可以工作了。您可以通过查看模块的 __file__
来说服自己或仔细检查您 运行 所在的位置:
激活虚拟环境前:
>>> import pip
>>> print(pip.__file__)
C:\Users\...\Anaconda3\lib\site-packages\pip\__init__.py
激活虚拟环境后:
>>> import pip
>>> print(pip.__file__)
C:\Users\...\Documents\Research\...\env\lib\site-packages\pip\__init__.py
请注意,我没有调整 PATH
,并且 pip
来自虚拟环境 运行。
另请注意,__file__
不一定为每个模块定义。有关 __file__
无法快速检查时选项的更完整视图,请参阅 this 答案。
如果我在我的计算机上全局安装一个 python 包,然后将该包的位置添加到我的 PATH 变量中,那么我的命令行可以找到它,而无需我每次都输入完整路径执行。
这在虚拟环境中如何工作?例如,我只是在项目激活的虚拟环境中使用了 pip install ffmpeg
。我可以在 venv/Lib/site-packages
文件夹中看到它,但我的命令行找不到它。我如何做相当于将 ffmpeg
的位置添加到我的 PATH 变量的虚拟环境?
正如 chepner 在他们上面的评论中提到的那样,如果您已经激活了虚拟环境,这应该已经可以工作了。您可以通过查看模块的 __file__
来说服自己或仔细检查您 运行 所在的位置:
激活虚拟环境前:
>>> import pip
>>> print(pip.__file__)
C:\Users\...\Anaconda3\lib\site-packages\pip\__init__.py
激活虚拟环境后:
>>> import pip
>>> print(pip.__file__)
C:\Users\...\Documents\Research\...\env\lib\site-packages\pip\__init__.py
请注意,我没有调整 PATH
,并且 pip
来自虚拟环境 运行。
另请注意,__file__
不一定为每个模块定义。有关 __file__
无法快速检查时选项的更完整视图,请参阅 this 答案。