Virtualenv: 「site」には属性「getsitepackages」がありません

作成日 2012年02月24日  ·  4コメント  ·  ソース: pypa/virtualenv

--system-site-packagesの有無にかかわらず、virtualenvは次のようになります。

% python -c 'import site; site.getsitepackages()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'

最も参考になるコメント

はい、virtualenvの実装の醜い側面の1つは、サイトモジュールの独自のコピーが必要なことです。これは、Pythonのバージョンに関係なく、すべてのvirtualenvで使用されます。 そして、このコピーはsite.getsitepackages()の追加よりも前のものです(Python 2.7で最初に追加されたと思います)。

実装がvirtualenvでサポートされているすべてのバージョンのPython(2.4から3.3a)で機能するものである限り、その関数をvirtualenvのサイトモジュールに追加するプルリクエストに異論はありません。 または、以前のPythonバージョンの他の領域にAPIがないためにそれが難しすぎる場合は、 sys.versionなどに応じて条件付きで定義してください。

全てのコメント4件

はい、virtualenvの実装の醜い側面の1つは、サイトモジュールの独自のコピーが必要なことです。これは、Pythonのバージョンに関係なく、すべてのvirtualenvで使用されます。 そして、このコピーはsite.getsitepackages()の追加よりも前のものです(Python 2.7で最初に追加されたと思います)。

実装がvirtualenvでサポートされているすべてのバージョンのPython(2.4から3.3a)で機能するものである限り、その関数をvirtualenvのサイトモジュールに追加するプルリクエストに異論はありません。 または、以前のPythonバージョンの他の領域にAPIがないためにそれが難しすぎる場合は、 sys.versionなどに応じて条件付きで定義してください。

重複#355

より一般的であるため、#355に複製として閉じます。

Python3.6.5でこの問題が発生します

>> python --version && python -c "import site; print(site.getsitepackages())"
Python 3.6.5
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: module 'site' has no attribute 'getsitepackages'

#355の複製ではありません

このページは役に立ちましたか?
0 / 5 - 0 評価