Python-future: `backports`および` moves`パッケージのインポート、ユーザーフォルダーからのインポート(例: `test.py`)、

作成日 2017年01月28日  ·  4コメント  ·  ソース: PythonCharmers/python-future

将来のバージョン:0.16.0
python-ver:3.5

future.movesまたはfuture.backportsパッケージをインポートすると、 import_top_level_modules()が呼び出され、さまざまなモジュールを名前でインポートしようとしtest.pyがある場合、それも予期せずインポートされます。

ある関連するコミット264f9bcdf0のメッセージによると、 「テストランナーをPy3のtravis-ciで動作させるimport_top_level_modules()メソッドが導入されました。
このコードをテストパッケージに入れる方が良いのではないでしょうか。

0.19 bug

最も参考になるコメント

python3でapache_beamを使用しているときに、これに噛まれました。

再現するには:

echo "raise NotImplementedError('This test.py file should not be touched')" >> ./test.py
pip install apache_beam
python -c "import apache_beam as beam"

import_top_level_modulesから呼び出されたexclude_local_folder_importsのコメントには、次のように記載されています。

(This was need prior to v0.16.0 because the presence of a configparser
    folder would otherwise have prevented setuptools from running on Py3. Maybe
    it's not needed any more?)

それがなくても問題なく動作するようです。 多分それは時間です。

全てのコメント4件

これに関する更新はありますか?

python3でapache_beamを使用しているときに、これに噛まれました。

再現するには:

echo "raise NotImplementedError('This test.py file should not be touched')" >> ./test.py
pip install apache_beam
python -c "import apache_beam as beam"

import_top_level_modulesから呼び出されたexclude_local_folder_importsのコメントには、次のように記載されています。

(This was need prior to v0.16.0 because the presence of a configparser
    folder would otherwise have prevented setuptools from running on Py3. Maybe
    it's not needed any more?)

それがなくても問題なく動作するようです。 多分それは時間です。

また、このパッケージに依存するダッシュプロットライブラリを使用しているときに噛まれました。 開発中にパッケージを実験するためにたまたまtest.pyがあったため、非常に奇妙な動作をしていました。これは、ローカルテストを実行するたびに実行され、重大な状態をサイレントに変更していたことが判明しました。私のアプリの。 私はこのようなサイレント問題のデバッグが本当に嫌いです。 この動作の削除を優先することを検討してください。

このページは役に立ちましたか?
0 / 5 - 0 評価