1

私は、さまざまな市場をサポートできる市場ロボットを持っています。現在、コードにハードコードされており、それを変更したいと考えています。私の src フォルダーには、市場をインポートする main.py があります。Marketsはこんな感じのパッケージです

markets/
    __init__.py
    market_template.py
    market1.py
    market2.py

私がやったことは、このように見える私のinit .pyにロードとオートロード機能を追加したことです

logging.getLogger(__name__)
slaves = {}

def autoload():
    for market in settings.conf["Markets"]:
        load(market)

def load(market):
    print("Starting {} interface".format(market))
    slaves[market].start()

autoload()

この部分はうまく機能するので、実際の問題に移ります。

指定した市場モジュールとその内部クラス (モジュールと同じ名前) をインポートしたい これは「from .market1 import market1」で簡単に作成できますが、同じパッケージにあることに似た小さなドットがすべてを作成します地獄。私は複数のことを試しましたが、そのうちの2つは

from . import *
eval('market1')

module = __import__("." + market)
my_class = getattr(module, market)

しかし、どちらも何らかの理由で同じパッケージ内の何かにアクセスできません...ありがとう

4

1 に答える 1