我没有使用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'
因为请求未安装在全局站点程序包中。
答案 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
软件包现在是标准库的一部分。