私が取り組んでいるプロジェクトのパッケージベースのワークフローに移行しています。私は開発環境と本番環境を分離したいと思っています。私はsetuptoolsがある程度の容易さでこの可能性を提供していると思います。スクリプトでsetuptoolsを使用したPython相対インポート
私は次のように構造化プロジェクトいる:script.pyで
modulename/
setup.py
modulename/
file_a.py
script.py
、私はfile_a.pyをインポートしたいです。現在私はimport file_a
を実行してこれを行います。私は順列の多様性を試してみました
SystemError: Parent module '' not loaded, cannot perform relative import
:現在
from setuptools import setup, find_packages
setup(name='modulename',
packages = find_packages(),
package_dir = {'': '../modulename'},
scripts = ['modulename/script.py'])
、私はpython setup.py install
をやった後script.py
を実行して、私はエラーメッセージが表示されます:
私のsetup.pyは次のようになりますpackage_dir = ...
、とりわけpackage_dir = {'': 'modulename'}
ですが、インストール時に別のエラーが発生します。error: package directory 'modulename/modulename' does not exist
私は何が間違っているのか分かりません。 setuptoolsのオンラインドキュメントは、相対的なインポートを含む状況に対処するのに比較的貧弱です。誰かが私を正しい方向に向けることができますか?
問題は 'setup.py'ではなく、' __main__'モジュールとして動作し、同時に相対インポートを使用する 'script.py'です。ここをクリックしてください(http://stackoverflow.com/questions/16981921/relative-imports-in-python-3) –
さて、ここでスクリプトをパッケージの外に保ち、それから通常の輸入? –
それは基本的にそれだと思います。 –