このような方法で distutils を使用して Python でパッケージを作成しました。
#! /usr/bin/env python
from distutils.core import setup
setup(name='mypackage4.py',
version='1.0',
description='Description',
packages=['mypackage4']
)
setup.py はそれを私の python2.7/site-packages ディレクトリにインストールします。
私が走るとき
import mypackage4
mypackage4 ディレクトリにある .py ファイルを実行しようとします。このディレクトリには、関数 (def コマンド) を含む python ファイルが含まれています。私がやりたいのは、インポート時に直接実行するのではなく、関数を使用できるようにすることだけです。
しかし、私はそうします
cd python2.7/site-packages
次にインポートを実行して mypackage4 をローカルで取得し、何も実行せずにインポートするので、通常の方法で Python コマンド ラインから関数にアクセスできます。
パッケージがローカル ディレクトリにないときに python が関数を実行しているように見えるのに、パッケージがローカル ディレクトリにあるときに関数を実行しないのはなぜですか?
第二に、私は配置について読みました
if __name__ == '__main__':
pass
else:
<define functions here>
私の .py ファイルでコマンドを実行してそれらが実行されないようにしますが、確かに関数は実行されません。
どんな助けでも大歓迎です!
ps、(これが役立つ場合)私のパッケージディレクトリには、__init__.py
どのファイルをインポートするかをpythonに伝えるファイルがあります
__all__ = [
'pyfile1',
'pyfile2',
'pyfile3',
]