2016-09-10 17 views
2

これと数時間苦労した後、私はウィットの終わりにいます。PYTHONPATHはUbuntuのsys.pathには含まれていません16.04

自分のプロジェクトのPythonモジュールをPYTHONPATHに含めて、Pythonインタプリタで解決できるようにしてimportで利用できるようにしたいとします。

マイプロジェクトフォルダは、次のようになります。

PYTHONPATH="${PYTHONPATH}:/home/john/my_project/" 

私のシェルを再起動した後、私はそれをエコーすることができます:

$ echo $PYTHONPATH 
:/home/john/my_project/ 
私はこのような /etc/bash.bashrcでPYTHONPATHを輸出してきました

my_project/ 
    module1/ 
    __init__.py 
    module1.py 
    module2/ 
    __init__.py 
    module2.py 

その後、私はPythonのコマンドラインを起動し、何を見ますかsys.pathになった:

あなたがはっきりと見ることができるように、 /home/john/my_project/が含まれていなかった
$ source /home/john/my_env/bin/activate 
(my_env)$ python3 
>>> import os 
>>> sys.path 
['', '/home/john/my_env/lib/python35.zip', '/home/john/my_env/lib/python3.5', '/home/john/my_env/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/site-packages'] 

import module1は失敗します。

私が考えることができる最後のことは、Pythonは私のPYTHONPATH変数を見ることができないので、内容をsys.pathに追加しないことです。

あなたは私の間違いを知りますか?

ありがとうございます。

+0

、これupvoteを。悲しいかな、重複しています。あなたの検索で見逃したキーワードはおそらく 'virtualenv'でした。 – msw

答えて

5

あなたがhereから見ることができるように:

使用export bashで、現在のシェルのため、現在のシェルから生まれたすべてのプロセスのための変数を設定します。だから、使用する必要があります。素敵な提示

export PYTHONPATH="${PYTHONPATH}:/home/john/my_project/"

+0

ああ私の神、そんなにばかな間違い。私はこの質問を書いたときにそのスリップに気付かなかった。私はこの問題について全面的に傾いたと思う。ありがとう! –

+0

@FlorianBraun問題はありません:) – Rishav

関連する問題