2017-04-06 11 views
1

をインストールしていない私は、レイアウトを行う場合foobar/__init__.pyPythonのパッケージ:サブディレクトリは

from . import foo 
from . import bar 

setup.py

from setuptools import setup 

setup(
    name='foobar', 
    version='0.0.1', 
    packages=['foobar'], 
    ) 

を読み込み

setup.py 
foobar/ 
    __init__.py 
    foo.py 
    bar/ 
     __init__.py 

とPythonのプロジェクトを持っています3210をソースディレクトリから削除すると、すべて正常に動作します。 pip install .経由でパッケージをインストールするときただし、サブフォルダbar/は、インポートエラー

ImportError: cannot import name bar 

任意のヒントにつながる、インストールされていないのですか?

+0

私はバーがpythonファイルではない(.py) – shiva

+0

そうだと思います。しかし、これはなぜインストールを損なうのですか? –

+0

このリンクを試す__init__.py http://stackoverflow.com/questions/1944569/how-do-i-write-good-correct-package-init-py-files – shiva

答えて

2

はどうやらサブパッケージが含まれるように、あなたはfind_packages()を必要とする:

from setuptools import setup, find_packages 

setup(
    name='foobar', 
    version='0.0.1', 
    packages=find_packages() 
    ) 

これも同様にthe setuptools docsで推奨されます。

+0

正確なリンク:https://setuptools.readthedocs .io/en/latest/setuptools.html#using-find-packages – deepelement

+0

@deepelementありがとう、答えを更新しました。 –

関連する問題