2013-05-20 66 views
2

我無法看到任何地方顯示如何使用incron的虛擬環境的示例http://inotify.aiken.cz/使用incron可以使用venvs(虛擬環境)嗎?

有誰知道這是甚至可能嗎?

更新: 我跑incrontab -e 我再加入這一行:

/home/vmail/jobstat.us/submit/new/ IN_CREATE /home/vmail/jobstatuspy3/bin/python3 /home/vmail/mailtounicodetoarchive.py --context=prd 

然而,當我嘗試即

/home/vmail/jobstatuspy3/bin/python3 /home/vmail/mailtounicodetoarchive.py --context=prd 

運行命令行同它說

[email protected]:~$ /home/vmail/jobstatuspy3/bin/python3 /home/vmail/mailtounicodetoarchive.py --context=prd 
Traceback (most recent call last): 
    File "/home/vmail/mailtounicodetoarchive.py", line 14, in <module> 
    me = singleton.SingleInstance() 
NameError: name 'singleton' is not defined 

顯然上面的錯誤是因爲它不是實際的在Venv中執行命令,因此安裝在venv中的tendo模塊不起作用。

關於如何讓venvs與incron一起工作的想法?

+0

定義*如何使用帶incron *的虛擬環境。否則,有效的答案是使用python3.3'venv'模塊或'virtualenv'安裝['pyinotify'](https://github.com/seb-m/pyinotify)。 – Bakuriu

回答

1

使用您通常用來激活虛擬環境並運行程序的所有命令編寫shell腳本。

然後設置incron運行shell腳本。

1

您可以將activate通常直接輸入到您的shell中到您的python代碼中。如果您的項目被命名爲A它是這樣的:

activate_this = 'A/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
0

我進一步調查不使用的inotify後決定。一個更簡單的方法是隻輪詢目標目錄中的文件並在supervisor下運行我的腳本。