[英]Python package and command line
我有一個python項目,該項目本質上是一組腳本和工具,我像這樣打包:
myProject
- bin/
- sometasks/
- task1.py
- task2.py
- someothertasks/
- othertask1.py
- othertask2.py
- settings.py
- etc.py
為了通過cronjob或從命令行運行任務(或作業,腳本等),我需要這樣運行:
python -m bin.sometasks.task1
它工作正常,但是在將守護程序(例如Celery)添加到混合中時,我開始遇到相對導入的問題。
例如,嘗試做
import myProject.etc #-or-# import .etc
由於守護程序中項目的根目錄現在是“ sometasks”或我的其他子目錄之一,因此無法使用。
據我了解,我需要使用某種可以導入和運行“任務”的根級腳本。 我假設這類似於Django具有manage.py腳本的方式。
Google似乎建議使用setuptools,但給我的印象是軟件包分發,並且該項目是私有的。
實現此目標的最佳實踐是什么?
這是一個快速(但有點愚蠢)的修復程序:
try:
import myProject.etc #-or-# import .etc
except ImportError:
import sys
import os
sys.path.append(os.getcwd() + '/../../')
import myProject.etc #-or-# import .etc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.