3

これは私のファブリック スクリプトからの抜粋です。

def create_php_site(name):
    """
    Creates a new php installation
    """

    from resource.php.git import gitignore
    from resource.php.nginx import nginx

実行すると、「ImportError: php.git という名前のモジュールがありません」というエラーが表示されます。

しかし、「from resource.php.git import gitignore」を関数の外に移動すると、機能します。何か案は?resource.php.git の各層には__init__.py

resource/php/ に git.py があります。

gitignore = """.DS_Store
._.DS_Store
"""
4

1 に答える 1

0

名前空間の競合が発生しています。

という名前の標準のpythonモジュールがあるため、ディレクトリに名前を付けることはできません- http://docs.python.org/2/library/resource.htmlresourceresource

from resource...そして、あなたがすべての地獄を宣言すると、解き放たれます。php.git実際、標準resourceのpythonモジュールにはそのような機能がないため、 Pythonは見つけることができません。

同様の例を作成しましたが、代わりにresourceディレクトリの名前をmyresource. インポートを実行すると、完全に機能します。このような:-

>>> from myresource.php.git import gitignore
>>> gitignore
'my ignore strings'

重要

__init__.pyディレクトリにファイルがあることも確認してくださいmyresource

于 2013-03-19T00:54:00.000 に答える