編集: Ulf Rompe のコメントに基づいて、"0" の代わりに "1" を使用することが重要です。そうしないと、sys.pathが壊れます。
私はかなり長い間 (1 年以上) python を実行してきましたがsys.path.append()
、sys.path.insert()
. 実演させてください。
私は PyWorkbooks という名前のモジュール (私のコンピューターにインストールされています) に取り組んでいるとしましょうが、同時に PyWorkbooks を組み込んだ別のモジュール (PyJob としましょう) に取り組んでいます。PyJob に取り組んでいるときに、PyWorkbooks に修正中のエラーを見つけたので、開発版をインポートしたいと思います。
両方で作業する方法は複数ありますが (たとえば、PyWorkbooks プロジェクトを PyJob 内に配置することもできます)、それでもパスをいじる必要がある場合があります。ただし、PyWorkbooks があるフォルダーに簡単にアクセスすることはできませんsys.path.append()
。なんで?python はインストール済みの PyWorkbooks を最初に見つけるからです!
これが、sys.path.insert(1, path_to_dev_pyworkbooks) を実行する必要がある理由です。
要約すれば:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
また:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
これにより、過去にいくつかのハングアップが発生しました。パスを手動で挿入しているかのように、(コミュニティとして) を推奨し始めsys.path.insert(1, path)
たら、それがあなたが望むパスであると言っても安全だと思います。使用する!
または、何か問題がありますか?それは時々私を悩ませる質問であり、私はそれをオープンにしたかったのです!