ホーム>source

開発環境(贅沢なUbuntuボックス)にsshでログインし、プロジェクトディレクトリが(vbox経由で)別のファイルシステムにマッピングされているため、シンボリックリンクはサポートされていません。新しいvenvを作成しようとしていますが、-copiesフラグが尊重されていません。

<前>ウィズウィズ

Python 2.7($virtualenv venv --always-copy)を使用している場合は機能しますが、python3 venv --copies実装では機能しません。 --always-copy引数は、python2.xでの同様の問題の回避策でした。

オンラインでvenvのバグを示すものを見つけることができず、少し途方に暮れています。他の誰かがこの問題を抱えていましたか?

<前>ウィズウィズ

前もって感謝します。

編集:python 3.8.1でもテストされています。

$sudo python -m venv --copies venv Error: [Errno 71] Protocol error: 'lib' -> '/home/vagrant/vagrant_projects/rurp/venv/lib64'
あなたの答え
  • 解決した方法 # 1

    上記の@chepnerのコメントによると、Windows以外のシステムでは--copies引数が無視されているようです(ドキュメントではこれについて言及していません)。ローカルディレクトリにvenvを作成し、symlinked lib64を実際のディレクトリに手動でコピーし、envをプロジェクトフォルダーに移動し、アクティベーションスクリプトを手動で更新することで、この問題を回避できました。醜いですが、動作します。

    <前>ウィズウィズ

    よりエレガントな回答をいただければ幸いです。

    $cd ~ $python3 -m venv --copies --clear venv $cp -r --remove-destination `readlink lib64` lib64 $cp -r venv vagrant_project/rurp/

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - Pygameウォールスプライトの衝突