2016-07-29 4 views
5

OS(Linuxの):Ubuntu 14.04.4 LTS(トラスティタール)なぜPython 3はPython 2.7のパッケージディレクトリでパッケージを探していますか?

何らかの理由で、私はPython 3.5.2ではなく、独自のPythonの2.7パッケージのディレクトリに探しています:

] python3 -m ensurepip 

Ignoring indexes: https://pypi.python.org/simple 
Requirement already satisfied (use --upgrade to upgrade): 
    setuptools in /usr/local/lib/python3.5/site-packages 
Requirement already satisfied (use --upgrade to upgrade): 
    pip in /usr/local/lib/python2.7/dist-packages 

詳細:

] python3 
Python 3.5.2 (default, Jul 29 2016, 09:41:38) 
[GCC 6.1.1 20160511] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import site; site.getsitepackages() 
['/usr/local/lib/python3.5/site-packages'] 
>>> 

^^^ - これは正しいと思われ、2.7パッケージディレクトリについて何も言及していません。

/usr/local/lib/python3.5/site-packagesしか見るべきではないように見えますが、なんらかの理由で見ても/usr/local/lib/python2.7/dist-packagesで見ています。

] python3 -m pip install psycopg2 
Requirement already satisfied (use --upgrade to upgrade): 
    psycopg2 in /usr/local/lib/python2.7/dist-packages 

それは2.7ディストリビューションにインストールしたパッケージとしてそれを見つけ、そのPythonの3バージョンをインストールするために失敗している。例えば

は、私は、Python 3モジュールとしてpsycopg2をインストールしようとすると何が起こるかを見て/usr/local/lib/python3.5/site-packagesにあります。

は私がpip 3のためにまっすぐに行く、しかし、無駄しようと、ミックスにさらに多くの混乱を追加するには:

] pip3 install psycopg2 
Requirement already satisfied (use --upgrade to upgrade): 
    psycopg2 in /usr/local/lib/python2.7/dist-packages 

] cat `which pip3` 
#!/usr/local/bin/python3 

# -*- coding: utf-8 -*- 
import re 
import sys 

from pip import main 

if __name__ == '__main__': 
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 
    sys.exit(main()) 

更新PYTHONPATH/usr/local/lib/python2.7/dist-packagesに設定しました。これが上記の問題の原因でした。クレジットはユーザーになりますbe_good_do_good私はになるようにねじを締めて、彼らが必要とするように作業するようにします。

+1

あなたはPATH値とPYTHONPATH値を投稿できますか? –

+0

@be_good_do_goodは同じことを考えていました。パスに手作業で追加された2.7サイトパッケージがあります – rll

+1

'sys.path'の値も投稿する必要があります。また、検索された場所の1つに '.pth'ファイルがあるかもしれません。 'sys.path'はそれを照らすべきです。また、冗長モード( 'python -v')で実行してモジュールのインポート先を確認する価値があります。 – theorifice

答えて

2

PYTHONPATHが2.7配布パッケージに設定されている可能性があります。

関連する問題