簡體   English   中英

Python軟件包和命令行

[英]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.

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