Pythonの新しいローカルvirtualenvバージョンを作成し、次の手順を実行して、実行されているjsonのコピーを確認しました。何らかの理由で、実行されているバージョンは新しく作成されたvirtualenvバージョンではありません。誰かがこれを説明できますか?私のvirtualenvは、特に--no-site-packages
フラグを付けて実行したため、システム全体のコピーとは何の関係もないまったく新しいコピーになると思います。
(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'
--no-site-packages
(これがデフォルトの動作になりました)は、新しいvirtualenv
各環境site-packages
に新しいモジュールをインストールする場所である新しい環境を提供するように指示します。組み込みモジュールをコピーしても意味がありませjson
ん。これは、使用している環境に関係なく、組み込みモジュールは変更されていないものと見なされるためです。そもそもそれらを変更するべきではありません。
興味深いことに、モジュールを機能させるには、いくつかの組み込みモジュールをvirtualenv
コピーする必要がありsite
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加