我如何使用特定的 python 解释器来 运行 我的 python 文件

How can I use a specific python interpreter to run my python file

我创建了一个 python 文件并使用了一些包。我在虚拟环境中安装了软件包。现在,当我尝试 运行 该文件时,它会在默认安装的解释器上 运行 并且每次我必须 运行 该文件时我都必须激活虚拟环境。有什么办法可以做到这一点。 结论:文件的代码可以 select 寻找包的地方。

您可以将虚拟环境解释器的路径直接添加到脚本顶部的 shebang 中。例如,如果您的虚拟环境存储在 /home/ishant/venv,shebang 将是

#!/home/ishant/venv/bin/python

然后,如果您直接执行脚本(在使用 chmod +x 等使其可执行之后),将使用您的虚拟环境。

(激活虚拟环境只是更新您的 PATH 变量,以便 python 解析为虚拟环境,而不是您的“常规”环境。您始终可以访问虚拟环境中的工具直接代替。)

好的,我明白你的意思了,我认为为什么不在代码中添加一些函数,这样无论何时执行它,它都会自动使用虚拟环境

--linux

的代码
import os

os.system("source <virtualenv_name>/bin/activate")

--windows

的代码
import os

os.system("<virtualenv_name>/bin/activate")

最后一行添加

os.system("deactivate")

将这些行添加到程序的开头,看看它是否有效。

希望能帮助您解决问题

谢谢!!

仅命令行 (Linux)

将其放入您的 ~/.bashrc 并在项目根目录中创建名称为 'venv' 的虚拟环境:

function cd() {
  if [[ -d ./venv ]] ; then
    deactivate
  fi

  builtin cd 

  if [[ -d ./venv ]] ; then
    . ./venv/bin/activate
  fi
}

当 cd-ing 进入目录时,它会搜索名为 venv 的虚拟环境,并在离开时禁用。

替代绝对路径(Linux 和 Windows)

如果你想 运行 没有 bash 的脚本,你可以 运行 它带有 virtualenv 中 python 解释器的绝对路径。

这来自 项目内部 目录:

# Posix:
/path/to/virtualenvname/bin/python run.py

# Windows:
C:\path\to\virtualenvname\Scripts\python.exe run.py

或者如果你想从项目目录之外的地方执行它:

# Posix:
/path/to/virtualenvname/bin/python /path/to/projectdir/run.py

# Windows:
C:\path\to\virtualenvname\Scripts\python.exe C:\path\to\projectdir\run.py