2017-03-16 86 views
4

我在通過Windows cmd運行Luigi任務時遇到問題。下面是事實:從cmd運行Luigi任務 - 「沒有模塊命名任務」

  • 運行所安裝在C蟒:\ ProgramData \ Anaconda2(Python 2.7版)

  • 阿納康達增加了它的路徑到PATH變量但沒有PYTHONPATH可變

  • 我試圖運行的任務位於C:\....\tasks.py

  • 嘗試如下運行:

    C:\.... luigi --module tasks MyTask --dt 20170316
    ImportError: No module named tasks

我試圖創建一個PYTHONPATH變量和添加的確切路徑包含我tasks.py文件的目錄,但沒有奏效。我有另外一個問題,這可能與是,當我使用通過CMD啓動路易吉調度:

luigid 

它工作正常,但每當我嘗試使用啓動它:

luigid --background 

我得到的以下錯誤:

No module named pwd 

這似乎是我的設置總體上有什麼問題,任何幫助將不勝感激。

回答

3

luigi存儲庫中的examples目錄(git clone ...,您有luigi目錄)。在那裏,你可以找到幾個不同的例子,其中:

  • hello_world.py包含像task_namespace = 'examples'的東西(這是一樣的Python模塊examples存儲庫中的所有這些蟒蛇文件被保存):
    • 這可能僅使用luigi命令(不需要具有守護進程luigid)從蟒模塊的外部來執行examples爲:cd luigi && PYTHONPATH=. luigi --module examples.hello_world examples.HelloWorldTask --local-scheduler
  • top_artists.py不包含像task_namespace的東西任何參考:
    • 這可以從Python模塊examples內運行:cd luigi/examples && PYTHONPATH='.' luigi --module top_artists AggregateArtists --local-scheduler --date-interval 2012-06

這個工作我使用爲miniconda(類似於anaconda)和cygwin,但我認爲它可以工作,即使你不使用cygwin(也許powershellcmd不允許你使用&&連接命令,但你總是可以一個接一個地運行這些命令)。

我不知道原因/解釋,但排除了一下這個情況,您可以用hello_world.py播放和運行它cd luigi/examples && PYTHONPATH=. luigi --module hello_world HelloWorldTask --local-scheduler(請注意,luigi調用命令examples.爲前綴的命令參數),這會給以下異常:

raise TaskClassNotFoundException(cls._missing_task_msg(name)) 
luigi.task_register.TaskClassNotFoundException: No task HelloWorldTask. Candidates are: Config,ExternalTask,RangeBase,RangeByMinutes,RangeByMinutesBase,RangeDaily,RangeDailyBase,RangeHourly,RangeHourlyBase,Task,TestNotificationsTask,WrapperTask,batch_email,core,email,examples.HelloWorldTask,execution_summary,retcode,scheduler,sendgrid,smtp,worker 

給一些提示,你有守護進程的其他問題,我有這樣的命令來啓動它cygwin的luigid &。該&符後綴讓您回到命令行提示符。爲了檢查哪個PID與守護進程相關聯,我仍然使用相同的命令行提示符cygwin並且我運行了ps aux | grep luigid。這種方法可能只適用於cygwin(由於某些bash相關的內部原因)。