使用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

Author

古斯塔沃·何塞·德索萨

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?