問題タブ [pythonpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Mac OSX 上の Pythonpath
Add to python path mac os xを読んで、それを行うのは良い考えだと思いましたが、それでも IDLE は の単純な呼び出しの構文エラーを返すopen(filename, mode)
ので、もう少し調べたところ、できることがわかりましたhttp://developer.apple.com/library/mac/#qa/qa1067/_index.htmlに記載されているように、.MacOSXフォルダーにenvironment.plistを設定したので、ホームディレクトリでそれを行いましたが、まだ変更はありません...私は今迷っています:-)
それは、.bash_profile に python-path として追加し、environment.plist に同じパスを追加したものです (:$PYTHONPATH なし):
編集:構文エラーが発生する場所です...インタープリターで正常に動作します
エラー:
python - システムモジュールと同名のモジュールのインポート
私の状況はこの質問の状況と似ています...違いは、
私たちの python/django プロジェクトには、基本的な機能を保持するutilsというディレクトリがあります...
場合によっては、コンソールから thm を実行していくつかのモジュールをテストする必要があります。
Python がutils ディレクトリから何かをインポートしようとするまでは、すべて問題ありません...
私は自分のpythonパスを確認し、私たちのプロジェクトはリストにあり、プロジェクトファイルの下の各フォルダーにはファイルがあり、プロジェクトディレクトリ内でipython__init__.py
を実行すると...すべて問題ありません。それ以外の場合、pythonは独自のutilsディレクトリからインポートします...
私の同僚は問題なく sama メソッドを使用していますがImportError
、私の環境ではスローされます... 私たち全員が見逃していた問題は何でしょうか?
更新:私のプロジェクトディレクトリと各サブディレクトリには__init__.py
ファイルがあり、プロジェクトから他のモジュールを問題なくインポートできます...私のprocektとは異なるフォルダーにいてipythonを実行すると、そのようなインポートに問題はありません...
しかし、ユーティリティのインポートに関しては、失敗します...
UPATE 2: 問題の原因は、python パスにもあるdjangoフォルダーの下の utils ディレクトリでした...
python - 共通のパッケージ階層を持つモジュールを PYTHONPATH で複数回言及できますか?
パッケージ名を共有する 2 つの個別のプロジェクトがあります。それらは両方とも PYTHONPATH にない限り問題なく実行されますが、両方が表示されるとすぐに、そのうちの 1 つが自身のプロジェクトでインポートを見つけることができなくなります。
例、次のような 2 つのプロジェクト:
プロジェクト 1:
test.py には次の行が含まれています。
プロジェクト 2:
私が走れば
エラーはありません。しかし、私が実行すると
エラーが発生します:
共通のパッケージを持つ異なる Python プロジェクトで PYTHONPATH を共有する方法はありますか? それとも、Python は常にパッケージが見つかった最初のパスのみを使用しますか?
注: インポートを x.foo からインポート foo に変更すると、機能することがわかっています。しかし、どちらのパッケージも変更せずに実行できるかどうかを知りたいです。
python - __init__。pyファイルを作成せずに共通の初期化コードを自動的に呼び出す
プロジェクトには2つのディレクトリがあります。
「src」には洗練されたコードが含まれ、「scripts」には1回限りのPythonスクリプトが含まれます。
すべてのスクリプトのsys.pathに「../src」を追加して、「src」ツリーの下のモジュールにアクセスできるようにします。これを行う1つの方法は、scripts / __init__。pyファイルを次の内容で作成することです。
これは機能しますが、すべてのスクリプトを「スクリプト」と呼ばれるパッケージに入れるという望ましくない副作用があります。すべてのスクリプトで上記の初期化コードを自動的に呼び出す方法は他にありますか?
.bashrcでPYTHONPATH環境変数を編集することもできますが、ユーザーがPYTHONPATHをいじる必要なしに、スクリプトをすぐに使用できるようにしたいと考えています。また、この1つのプロジェクトに対応するためだけに、アカウント全体を変更する必要はありません。
python - Pythonのどこに設定ファイルを置くのですか?
開発モードでは、次のディレクトリツリーがあります。
ConfigParserを使用してファイルを解析しmyproject.conf
ます。
私のコードでは、適切なパスでファイルをロードするのは簡単です:my_project/conf/myproject.conf
問題は次のとおりです。setup.pyを使用してプロジェクトをインストールすると、構成ファイルは(setup.pyのおかげで)に/etc/my_project/myproject.conf
、アプリケーションはに配置され/usr/lib/python<version>/site-packages/my_project/
ます。
my_project/conf/myproject.conf
プロジェクト内のファイルを「本番」モードで参照し、ローカルファイル( )を「開発」モードで参照するにはどうすればよいですかmy_project/conf/myproject.conf
。
さらに、可能であればポータブルにしたいと思います(たとえば、Windowsでの作業)。
それを行うための良い習慣は何ですか?
python - setuptools/easy_install を取得して PYTHONPATH とうまく連携させる
setuptools/easy_install .pth ファイルが PYTHONPATH で適切に配置されないのはなぜですか? また、これらの .pth ファイルが sys.path に押し込まれる前に、それらを適切に再生し、ディレクトリを PYTHONPATH に保持するにはどうすればよいですか?
私の現在の問題は、PyYAML と PyCrypto の両方を要件として、プロジェクト用のパッケージを作成したことです。
開発に伴い、標準ディレクトリ (/usr/lib64/python2.6/site-packages) に PyYaml を pip でインストールしました。そこに古いバージョンの PyCrypto をインストールした後、/opt/devtools/lib64/python2.6/site-packages にインストールした新しいバージョンが必要であることを発見しました。/usr/lib64 の前に、最初に /opt から読み取るように PYTHONPATH を既に設定しています。そして、それはすべて開発中にうまくいきました。実行すると、/opt から PyCrypto 2.3 を取得し、/usr/lib64/... から PyYaml を取得しました。
しかし、今、virtualenv にインストールしようとしていて、実行するpython setup.py develop
と、setuptools/distribute は /usr/lib64/python2.6/site-packages を easy-install.pth に追加しますが、/opt/devtools は追加しません。 /lib64/python2.6/site-packages. 出力に見られるように、適切なバージョンを見つけています。
しかし、/opt/... を easy-install.pth に追加しません。(/usr/lib64... と setup.py を実行したディレクトリのみがパスに追加されます。)
最終的な結果は、setuptools は成功したと考えていますが、コードを実行すると、easy-install.pth は、私が望むものよりもよく知っていると判断し、PYTHONPATH の前に自分自身を挿入し、間違ったバージョンのPyCrypto。
2 つの質問:
setuptools が .pth ファイルに追加するディレクトリについて一貫性がないのはなぜですか? 両方のディレクトリがインストールされるか、どちらのディレクトリもインストールされないことが予想されます。
setuptools が PYTHONPATH を上書きしないようにする方法はありますか? そもそもなぜそれが良いアイデアだと考えられたのでしょうか?
python - PYTHONPATH - 異なる python インストールに対して動的ですか?
私の CentOS5 サーバーには、Python2.4 と 2.6 の両方があります (yum が機能するには 2.4 が必要です)。何が起こったのかわかりませんが、モジュールが 2.4 の site-packages ディレクトリにロードされているファイルを実行しようとするたびに、突然システムが非常に混乱します。PYTHONPATH/sys.path を確認したところ、代わりにすべてが 2.6 環境データで上書きされたようです。
これは以前は行われませんでした。スクリプトの先頭にある shebang ステートメントで /usr/bin/python または /usr/bin/python26 を宣言しただけで、常に正しいモジュールが正常に検出されました。
PYTHONPATH 変数を動的にして、実行中の Python インタープリターに基づいて異なるパスをロードする方法はありますか?
そうしないと、すべてのアプリケーションで手動でパスを編集する必要があり、やり過ぎのように思えます。
web.pyをインストールした後に始まりました(ちなみに、私は大好きです)。
トレースバック: 誰かが以下にコメントしたように、このプログラムのシバンを #!/usr/bin/env python に変更しました:
yum を使用しようとする別の例:
b"" 構文に混乱していないプログラムがいくつかあることに気付きました。それらはすべて、何らかの理由で 2.6 を使用している 2.4 を使用することを意図したプログラムです。プログラムに 2.6 インタープリターを使用させようとすると、その構文は理解できますが、他のモジュール (2.4 site-packages ディレクトリにあります) を見つけることができません。
sourceforge から入手したモジュールに記述されているため、その構文が何であるかはわかりませんが、先週は機能していました。何が変わったのかわかりません。
ありがとう、トム
python - PYTHONPATHがGNU/Linuxのsudoで機能しない(rootで機能する)
編集:rootで機能し、sudoが問題です。以下をお読みください。
自分のライブラリを含むディレクトリがあります。たとえば、Pythonライブラリはにあり/home/name/lib/py
ます。
次の行を追加して、このディレクトリをすべてのユーザー(rootを含む)のPythonのPATH/etc/bash.bashrc
に追加しました。
すべてのユーザー(rootを含む)で機能します。ただし、sudoでは機能しません。sudoを使用する方法はあります/etc/bash.bashrc
か?
編集:詳細情報:
私はPYTHONPATH
次のようにsudoersファイルに追加しました:Defaults env_keep += "HOME PYTHONPATH"
。それは動作しません。
python - モジュールのインポートに問題がある
os.chdir()
私は、recommendation.py ファイルがある現在のディレクトリを変更するために使用します。次に、入力Import recommendations
するとエラーが発生します。
何が問題なのですか?
python - bashでPythonパスの先頭に追加する方法
これが私の.bash_profile
だから私はpythonを開きますが、追加するディレクトリ.bash_profile
は最初のものではありません:
Pythonパスに追加するにはどうすれ.bash_profile
ばよいので、最初になります。これは共有ホスティング用です。システムのデフォルトを使用する代わりに、django インストールをインポートできるようにする必要があります。
ありがとうございました