使用特定文件夹路径中的指定库运行python脚本

时间:2019-07-12 01:11:25

标签: python virtualenv

我没有使用virtualenv库就创建了一个“虚拟”环境。

我有这个结构。

./default_env
├── .venv
├── main.py

在.venv文件夹中,我安装了库。

要在.venv中安装软件包,我只需运行

>>> pip install --target=path\to\.venv package_to_install

没关系,可以正常工作。

但是我的问题是当我尝试运行python时。
我不想运行使用全局站点包的python,而是希望它指向我的.venv文件夹。我已经阅读了有关USER_SITE的信息,但是我无法正确理解如何更改和使用它。

运行python main.py时,出现错误(因为我已经清除了所有已安装的库)。但是,我在.venv中安装了请求及其相关的程序包。

所以我试图了解如何运行

>>> python main.py 

(带有参数,或更改某些内容……),但告诉python“站点包”要指向.venv文件夹。

这是我的main.py脚本。

import requests
def main():
    try:
        import requests
        r = requests.get('https://api.github.com/user')
        print("get request sent")
    except:
        print("get request not sent")

if __name__ == "__main__":
    main()

因此,当我运行它时,就会得到明显的

λ python main.py
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

因为请求未安装在全局站点程序包中。

1 个答案:

答案 0 :(得分:1)

您需要使用PYTHONPATH环境变量或通过修改sys.path来设置python路径。

# This needs to come before any other imports
import sys
sys.path.insert(0, "path/to/your/venv")

您还可以删除其他路径以仅包含您自己的路径。 sys.path只是list

但是为什么不只使用virtualenv? venv软件包现在是标准库的一部分。