venv 不尊重 --copies 论点
venv not respecting --copies argument
我通过 ssh 连接到开发环境(vagrant Ubuntu 框)并且我的项目目录映射到另一个文件系统(通过 vbox),因此不支持符号链接。我正在尝试创建一个新的 venv,但没有遵守 --copies 标志。
$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 实现。 --always-copy 参数是 python2.x 类似问题的解决方法。
我在网上找不到任何表明 venv 中存在错误的信息,我有点不知所措。其他人遇到过这个问题吗?
$ python -V
Python 3.6.9
提前致谢。
编辑:还在 python 3.8.1.
中进行了测试
根据上面@chepner 的评论,似乎 --copies 参数在非 Windows 系统上被忽略(文档中未提及)。我能够通过在本地目录中创建 venv、手动将符号链接的 lib64 复制到真实目录、将 venv 移动到我的项目文件夹并手动更新激活脚本来解决该问题。丑陋,但它有效。
$cd ~
$python3 -m venv --copies --clear venv
$cp -r --remove-destination `readlink lib64` lib64
$cp -r venv vagrant_project/rurp/
我很乐意接受更优雅的答案。
我通过 ssh 连接到开发环境(vagrant Ubuntu 框)并且我的项目目录映射到另一个文件系统(通过 vbox),因此不支持符号链接。我正在尝试创建一个新的 venv,但没有遵守 --copies 标志。
$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 实现。 --always-copy 参数是 python2.x 类似问题的解决方法。
我在网上找不到任何表明 venv 中存在错误的信息,我有点不知所措。其他人遇到过这个问题吗?
$ python -V
Python 3.6.9
提前致谢。
编辑:还在 python 3.8.1.
中进行了测试根据上面@chepner 的评论,似乎 --copies 参数在非 Windows 系统上被忽略(文档中未提及)。我能够通过在本地目录中创建 venv、手动将符号链接的 lib64 复制到真实目录、将 venv 移动到我的项目文件夹并手动更新激活脚本来解决该问题。丑陋,但它有效。
$cd ~
$python3 -m venv --copies --clear venv
$cp -r --remove-destination `readlink lib64` lib64
$cp -r venv vagrant_project/rurp/
我很乐意接受更优雅的答案。