2017-12-02 12 views
2

新しいローカルのvirtualenvバージョンのpythonを作成し、jsonのどのコピーが実行されているかを確認するために、以下の作業を行いました。何らかの理由で、実行されているバージョンが、新しく作成されたvirtualenvバージョンではありません。誰かがこれを説明できますか?私はvirtualenvが、特に私が--no-site-packagesフラグを付けて実行して以来、システム全体のコピーとは何の関係もない全く新しいコピーであることを期待しています。jsonモジュールがローカルのvirtualenvバージョンのpythonにインストールされていないのはなぜですか?

(TEST) GBMAC0122 ~/Desktop/test $ virtualenv . --no-site-packages 
New python executable in /Users/jonathan/Desktop/test/bin/python 
Installing setuptools, pip, wheel...done. 
(TEST) GBMAC0122 ~/Desktop/test $ source bin/activate 
(test) GBMAC0122 ~/Desktop/test $ python 
Python 2.7.10 (default, Feb 7 2017, 00:08:15) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import json 
>>> json.__file__ 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc' 

答えて

3

--no-site-packages(現在デフォルトの動作です)新しいモジュールがインストールされている場所である各新しい環境新鮮site-packagesを与えることvirtualenvを指示します。 jsonのような組み込みモジュールをコピーすることには意味がありません。なぜなら、あなたがいる環境にかかわらず、組み込みのモジュールは手つかずであると思われるからです。あなたはそれらを変更するべきではありません。興味深いことに、virtualenvは、a few builtin modules~make the site module workをコピーする必要があります。

関連する問題