質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1404閲覧

Pythonのパスに関する質問です。

gjmwtaptm

総合スコア13

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/04 04:50

前提・実現したいこと

Python 3.5.5を使っているのですが、

moduleを読み込めないエラーが出てしまいます。

具体的には、ディレクトリ構成が以下の時、

イメージ説明

treeコマンド実施したディレクトリで
以下を実行しています。

export PYTHONPATH=$PYTHONPATH:'pwd':'pwd’/Y python X/main.py

発生している問題・エラーメッセージ

A.pyで

ImportError:No module named Z

該当のソースコード

A.py

python

1from Z import B

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gh640

2018/11/04 05:01 編集

export PYTHONPATH=$PYTHONPATH:'pwd':'pwd'/Y の 'pwd' がバッククォートじゃないから、等ではありませんか? A.py の中で `os.environ['PYTHONPATH']` を確認する等されると問題解決につながるものと思います
gjmwtaptm

2018/11/04 06:36

'pwd'の部分を実際にpwdコマンド叩いたパスに置換してみましたがだめでした。A.py の中で print(os.environ['PYTHONPATH'])を実行すると、KeyError(key) from None KeyError: 'PYTHONPATH'と言われます。pyenvの問題なのでしょうか。
gh640

2018/11/04 06:51

私は pyenv を使っていないので pyenv の問題かどうかはわかりませんが、シェルで PYTHONPATH が正しくセットされているかを改めて確認されて、 pyenv をお使いなのであれば pyenv PYTHONPATH KeyError あたりで情報がないか検索されるとよいかもしれません。
gh640

2018/11/04 06:55

PYTHONPATH の問題は置いておいてとりあえず動くようにする、のであれば、 hayataka2049 さんの回答のコードで動くのではないかと思います
gjmwtaptm

2018/11/04 10:32

hayataka2049 さんの回答のコードで動きました
gh640

2018/11/04 10:45

ご丁寧にお知らせくださりありがとうございます。ひとまずよかったですね :)
guest

回答2

0

ベストアンサー

A.pyで直接sys.pathをいじってできるかどうか確認してください。

python

1import sys;sys.path.append("Yの絶対パス") 2from Z import B

投稿2018/11/04 06:47

編集2018/11/04 06:48
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gjmwtaptm

2018/11/04 10:33

動くようになりました。ありがとうございます。
guest

0

Bash

1export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/Y 2python X/main.py

ですね。
あるいは、

Bash

1export PYTHONPATH=$PYTHONPATH:$PWD:$PWD/Y 2python X/main.py

投稿2018/11/04 06:08

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gjmwtaptm

2018/11/04 06:43

上記でやってみましたが、エラー内容は変わらないようです。
otn

2018/11/04 10:30

FOO=$PWD python -c 'import os;print(os.environ["FOO"])' をコピペ実行すると、どうなりますか?
gjmwtaptm

2018/11/04 10:35

Xの絶対パスが表示されました
otn

2018/11/04 10:44

うーん。それなのに、 > print(os.environ['PYTHONPATH'])を実行すると、KeyError(key) from None KeyError: 'PYTHONPATH'と言われます。 というのがわかりません。pyenv と PYTHONPATH の特殊事情があるのですかね。 念のため、 PYTHONPATH=$PWD python -c "import os;print(os.environ['PYTHONPATH'])" はどうですか?
gjmwtaptm

2018/11/04 18:53

同様にXの絶対パスが表示されました
otn

2018/11/05 03:52

ますます謎です。 シェルプロンプトで、 echo $PYTHONPATH として、期待通りの内容ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問