簡體   English   中英

virtualenv和子流程:如何獲取腳本的正確路徑

[英]virtualenv & subprocess: How to get the correct path to a script

當有人安裝我的Python軟件包時,他們可以使用命令mycmd (這是添加到python bin/目錄中的控制台腳本)。 反過來, mycmd推出采用幾種其他的Python腳本控制台subprocess

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

celeryhuey命令是通過我的軟件包的pip依賴項安裝的。)

這通常可以很好地工作,除非有人直接調用mycmd而不激活其virtualenv。 例如,我試圖在過程控制系統“ circusd”中使用mycmd 請參見此處 circus.ini文件在不實際激活venv情況下直接調用venv/bin/chaussettevenv 如果這樣做,我得到的消息是celery: No such file or directory ,我想是因為virtualenv未激活,因此在路徑上找不到這些命令。

我如何確保當有人運行mycmd時,即使未激活virtualenv,也可以運行正確的celery (如果該人根本不使用virtualenv和跨平台等,也應該可以使用。)

順便說一句,我沒有使用subprocess.Process直接,而是使用本町 ,圍繞它提供了一個層。

我只需將我的virtualenv bin路徑添加到circus使用的PATH即可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM