私は自分のプロジェクトをsetup.pyでパッケージ化しようとしていましたが、うんざりしました。次のようにパッケージ化後にPythonサブモジュールが表示されない
マイファイル構造は次のとおりです。
root/
mypackage/
__init__.py
mysubmodule1/
__init__.py
mysubmodule2/
__init__.py
私は、
from setuptools import setup, find_packages
# To use a consistent encoding
from os import path
import glob
here = path.abspath(path.dirname(__file__))
print(find_packages(exclude=['docs', 'tests*']))
setup(
name='mypackage',
packages=find_packages(exclude=['contrib', 'docs', 'tests*']),
install_requires=[...],
scripts=[...],
)
を私のsetup.pyで次の構成を使用している私はのpythonでパッケージをビルドをsetup.py installをvirtualenvの中で、私が印刷したデバッグ行には、find_packagesがすべてのpacakgesに配置されていることが示されていました。私は私のパッケージをインポートすると
['mypackage', 'mypackage.submodule1', 'mypackage.submodule2']
、私はmypackage.submodule1.classをインポートしようとしましたが、これは例外を見つけていないモジュールを投げました。 すべてのモジュールがvirtualenv site-packagesの出力eggにあり、ルートパッケージをインポートできることを確認しました。
次のようにDIR(mypackageと)の出力は次のとおりです。
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mypackage
>>> dir(mypackage)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__']
私は何かが足りないのですか?私が参照したすべてのオープンソースプロジェクトは、このパターンに従います。 ありがとう