0

当有人安装我的 Python 包时,他们可以使用命令mycmd(这是添加到 pythonbin/目录的控制台脚本)。反过来,mycmd使用以下命令启动其他几个 Python 控制台脚本subprocess

subprocess.Process('celery arg1 arg2') subprocess.Process('huey arg1 arg2') ...

celery并且huey命令是通过我的包的 pip 依赖项安装的。)

这通常可以正常工作,除非有人mycmd直接调用而不激活它的 virtualenv。例如,我试图mycmd在过程控制系统内部使用“circusd”。请参阅此处circus.ini文件直接调用的位置venv/bin/chaussette,而无需实际激活venv. 如果我这样做,我会收到消息celery: No such file or directory,我想是因为 virtualenv 没有被激活,因此在路径上找不到这些命令。

即使 virtualenv 未激活,我如何确保当有人运行时mycmd正确运行?celery(如果这个人根本不使用 virtualenv 和跨平台等,也应该可以工作)

顺便说一句,我不是subprocess.Process直接使用,而是使用Honcho,它提供了一个围绕它的层。

4

1 回答 1

0

我只是通过将我的 virtualenvbin路径添加到PATH使用的 by来解决这个问题circus

于 2017-06-04T02:48:36.327 回答