使用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第三方库


热门话题
在OSGI中使用cxf生成的客户端时出现Java类装入器问题和JaxB异常   java为什么要在javamail中迭代多部分电子邮件中的部分?   并发编程问题   JFileChooser&&System中未调用java windowClosing。退出功能不正常?   SQL查询的java语法分析   java如何使用AspectJ声明字段上的警告   什么是java向量。元素()C#等价物   java解析Android应用程序中tornado web服务中的CSV文件   java我试过c2dm,我需要服务器端   java调整JPanel大小以适应新的JLabel图标   Java与Python脚本的通信   java使用Saxon通过XSLT生成URL   java net::ERR_complete_CHUNKED_编码200(OK)来自struts应用程序中的tomcat   java如何为我的窗格设置不同的位置?   java使用Cypher Neo4j获取给定类型的所有节点(从SQL世界中的tablename中选择*)   nio使用Java解析文件值   java使用WSDL生成REST客户端会是错误的方向吗?   java如何在我的应用程序中构建类映射?   java按钮。setEnabled在第一个循环中不起作用   xPath适用于最后一页,但不适用于第一页