使用python虚拟环境运行命令
venv-run的Python项目详细描述
这样做…
venv-run myapp.py
…比这个更方便吗…
source myvenv/bin/activate
python myapp.py
deactivate
内容
这就是这个工具的主要动机!
venv-run是一个用于在python虚拟环境中运行命令的工具 不需要显式地激活它(并在完成后停用它)。 实际上,它使用虚拟环境的二进制路径运行您的命令 在系统的PATH环境变量前面。另一件好事 关于venv-run,它试图从 您当前的工作目录,以便您可以保存一些键入内容。
Installation
来自源
如果系统中有pip可用,则建议使用
从源安装正在执行:
# From the source root
pip install .
或者,您可以直接调用setup.py,但请记住,可以
不提供“uninstall”命令(此表单对操作系统分发很有用
包装商):
python setup.py install
Usage
venv-run可以作为shell命令直接调用:
venv-run [OPTIONS][--][CMD]
调用时,venv-run所做的第一件事是查找(single) 当前工作目录下的虚拟环境。在它遇到 在环境的目录中,它使用环境的二进制文件运行命令 系统二进制路径前面的路径。
本节中的所有示例都假设您创建了一个虚拟环境 在工作目录中。
Running a Python script
假设您在my-python-project中有一个python项目,并且创建了一个 虚拟环境,如以下示例:
$ cd my-python-project
$ python -m venv myvenv
可以使用该环境调用项目的python脚本 命令:
$ venv-run myapp.py
如果myapp.py接受参数,则可以正常传递它们:
$ venv-run myapp.py --foo --bar baz
注意
像这样运行python脚本是可能的,因为venv-run猜测 希望使用环境的python运行myapp.py。 翻译。如果myapp.py对您的用户具有执行权限,则 venv-run不会为您调用解释器。你可以打电话 venv-run python myapp.py用于此类情况。
Calling Python
虚拟环境的python解释器在 以下情况:
- When no command is passed to ^{tt1}$;
- When the first word of ^{tt15}$ is not an executable and either starts with ^{tt16}$ or ends with ^{tt17}$. In this case, ^{tt18}$ is prepended to ^{tt15}$ (the example in the previous section falls under this condition).
因此,例如,您可以启动与环境的 python只需调用:
$ venv-run
您可以使用以下命令调用安装在环境中的模块:
$ venv -m path.to.module
对于这两种情况,也可以显式地调用解释器(例如 venv-run python -m path.to.module)。
Calling executables
如果要调用安装在虚拟环境中的可执行文件,则 在下面的示例中可以这样调用:
# Suppose I'm using flask to develop a Web application and want to start
# the development server
$ venv-run flask run
可执行文件不需要真正安装在环境中。这个 下一个示例启动系统的bash,并将venv/bin前置到 PATH:
$ venv-run bash
Locally installing and using a Python package
假设您想使用bpython来 交互式地使用和测试项目的模块。
您可以安装它:
$ venv-run pip install bpython
随意运行:
$ venv-run bpython
Multiple virtual environments
venv-run如果发现多个虚拟环境,则拒绝继续。 您可以通过--venv PATH_TO_VENV指向要用于的环境 这样的案子。
Options ambiguity
如果CMD使用的选项与venv-run自己的选项冲突,则 可以在CMD前面加上--来标记CMD的开头。示例:
$ venv-run python -h # Shows venv-run's help message $ venv-run -- python -h # Shows python's help message