Python包和命令行
我有一个python项目,它本质上是一组脚本和工具,我是这样打包的:Python包和命令行,python,Python,我有一个python项目,它本质上是一组脚本和工具,我是这样打包的: myProject - bin/ - sometasks/ - task1.py - task2.py - someothertasks/ - othertask1.py - othertask2.py - settings.py - etc.py 为了通过cronjob或从
myProject
- bin/
- sometasks/
- task1.py
- task2.py
- someothertasks/
- othertask1.py
- othertask2.py
- settings.py
- etc.py
为了通过cronjob或从命令行运行任务或作业、脚本,我按如下方式运行它:
python -m bin.sometasks.task1
它工作得很好,但在向组合中添加守护进程(如芹菜)时,我开始遇到相对导入的问题
例如,尝试
import myProject.etc #-or-# import .etc
无法工作,因为守护进程中项目的根目录现在是sometasks或我的其他子目录之一
据我所知,我需要使用某种根级别的脚本来导入和运行任务。我假设这与Django的manage.py脚本类似
谷歌似乎建议使用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