私は最新のpythonバージョン(2 & 3)でいくつかの問題を抱えています。私はは、PyPIにプッシュパッケージについてpython 2.7.14&3.6パッケージのインポートのための良い練習
私は輸入品のため__init__.py
でpackage.module
を使用し、その後、パッケージ用のサブフォルダを作成すると、それはまだ大丈夫です。 私は同じことをモジュールファイルで行います。
これ以外にも、プロジェクト間で共有するいくつかのパッケージ(私のsvnサーバに保存されています)を持っています。これをプロジェクトのsvn外部としてインポートします。
階層は、通常はこのように設計されています
package:
|- __init__.py
|- module1.py
|- module2.py
|- ...
私はプロジェクトにインポートすると、フォルダは次のようになります。
project:
|- package:
|- what's above
|- app.py
私は通常、プロジェクトとしてパッケージ自体の開発、package
を意味しますルートです。 私はそれをプロジェクトにインポートすると、パッケージになります。ルートにはなりません。
スタンドアロンパッケージプロジェクトでpackage.module
または.module
を使用すると、もちろん動作しません。 他のプロジェクトと同じパッケージを使用している場合、これはほとんどうまくいく傾向にありますが、Python 3.6ではいくつかの名前が定義されていないという問題があります(コマンドラインから直接起動したときpycharmの下で動作したとき)。 py2exeを使用してPython 2.7から実行可能ファイルを作成するときに、そのような例外が発生していないため、インポートが正常であると思われる場合でも、いくつかの未定義の名前(クラスなど)が取得されます。私は関連する.pycファイルがlibrary.zipにあることが分かりました。
私はこれらの問題を数か月前にやっていませんでしたが、Python 2もPython 3も古いバージョンではありませんでした。
StackOverflow、pythonのドキュメント(2 & 3)を検索して、これらの最後の日に多くのことを検索しながら、全体の問題に本当に関連するものを見つけずにこの質問を開きます。
私の質問です、誰のpython 2 & 3との間に互換性があるでしょう輸入のために良い習慣上の任意の手掛かりを持っていますし、パッケージが__main__
のときにも働くだろうか?そして、ボーナスは、py2exeで詰められてもまだ大丈夫ですか?
ある時点で、私はこれらのインポートのためにいくつかのtry/except ImportError
ブロックを試しましたが、ビットを上げてしまいます&は信頼できないようです。
ありがとうございました!