私は、さまざまな市場をサポートできる市場ロボットを持っています。現在、コードにハードコードされており、それを変更したいと考えています。私の 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)
しかし、どちらも何らかの理由で同じパッケージ内の何かにアクセスできません...ありがとう