は、あなたはその下のmyproj
という名前のディレクトリにmodule1.py
とmodule2.py
を移動したい、とあなたは、Python < 3.3の互換性を維持したい場合は、そこに__init__
の.pyを追加します。
├── myproj
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
└── setup.py
distutilsの代わりにsetuptools
を使用することもできます。 setuptools
では、このファイルをもっと簡単に設定できるように、より多くのヘルパーメソッドと追加の属性を提供しています。あなたはこのような行が表示されるはずのインストールを実行する
from setuptools import setup, find_packages
setup(name='myproj',
version='0.1',
description="My project",
author='me',
author_email='[email protected]',
packages=find_packages(),
)
:これは私が上記のプロジェクトのために構築します最低限setup.py
である。これは、セットアップスクリプトが必要なソースを拾ったことを意味
copying build/lib.linux-x86_64-2.7/myproj/__init__.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module1.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module2.py -> build/bdist.linux-x86_64/egg/myproj
ファイル。 Pythonインタープリタを(好ましくはこのプロジェクトディレクトリの外に)実行して、それらのモジュールをインポートできるようにします(相対インポートのためではありません)。
一方、これらのモジュールをルートレベルで提供する場合は、明示的にpy_modules
を宣言する必要があります。
最後に、Python Packaging User Guideは、誰でも配布可能なpythonパッケージを構築するための具体的な質問のための優れたリソースです。
他人に 'import myproj.module1'を使ってインポートさせたいのですか? – metatoaster
'setup.py'はプロジェクトディレクトリ内にあってはなりません.... –
@metatoasterはい。 – piRSquared