运行 python 具有来自特定文件夹路径的指定库的脚本
Run python script with specified libraries from a specific folder path
我在没有使用 virtualenv 库的情况下创建了一个 "virtual" 环境。
我有这个结构。
./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 "site-packages" 将指向 .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'
因为 requests 没有安装在全局站点包中。
您需要设置python路径,使用PYTHONPATH环境变量或修改sys.path
.
# This needs to come before any other imports
import sys
sys.path.insert(0, "path/to/your/venv")
您也可以删除其他路径以只包含您自己的路径。 sys.path
只是一个 list
.
但是为什么不直接使用 virtualenv 呢? venv
包现在是标准库的一部分。
我在没有使用 virtualenv 库的情况下创建了一个 "virtual" 环境。
我有这个结构。
./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 "site-packages" 将指向 .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'
因为 requests 没有安装在全局站点包中。
您需要设置python路径,使用PYTHONPATH环境变量或修改sys.path
.
# This needs to come before any other imports
import sys
sys.path.insert(0, "path/to/your/venv")
您也可以删除其他路径以只包含您自己的路径。 sys.path
只是一个 list
.
但是为什么不直接使用 virtualenv 呢? venv
包现在是标准库的一部分。