我通過 ssh 進(jìn)入開發(fā)環(huán)境(vagrant Ubuntu box),并且我的項(xiàng)目目錄映射到另一個(gè)文件系統(tǒng)(通過 vbox),因此不支持符號(hào)鏈接。我正在嘗試創(chuàng)建一個(gè)新的 venv,但 --copies 標(biāo)志沒有得到尊重。$sudo python -m venv --copies venv Error: [Errno 71] Protocol error: 'lib' -> '/home/vagrant/vagrant_projects/rurp/venv/lib64'如果我使用 python 2.7 ($virtualenv venv --always-copy) 它可以工作,但不適用于 python3 venv --copies 實(shí)現(xiàn)。--always-copy 參數(shù)是解決 python2.x 類似問題的一種解決方法。我在網(wǎng)上找不到任何表明 venv 錯(cuò)誤的東西,我有點(diǎn)不知所措。其他人遇到過這個(gè)問題嗎?$ python -VPython 3.6.9先感謝您。編輯:也在 python 3.8.1 中測(cè)試過。
1 回答

長(zhǎng)風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
根據(jù)上面@chepner 的評(píng)論,在非 Windows 系統(tǒng)上似乎忽略了 --copies 參數(shù)(文檔中沒有提到這一點(diǎn))。我能夠通過在本地目錄中創(chuàng)建 venv、手動(dòng)將符號(hào)鏈接的 lib64 復(fù)制到真實(shí)目錄、將 venv 移動(dòng)到我的項(xiàng)目文件夾并手動(dòng)更新激活腳本來解決這個(gè)問題。丑陋,但它的工作原理。
$cd ~
$python3 -m venv --copies --clear venv
$cp -r --remove-destination `readlink lib64` lib64
$cp -r venv vagrant_project/rurp/
我很樂意接受一個(gè)更優(yōu)雅的答案。
添加回答
舉報(bào)
0/150
提交
取消