我正在用python 3.6学习Django。我使用Ubuntu 18.04.2 LTS,这对我来说也是新的。我的点子版本是9.0.1。我的问题是,当我尝试使用 virtualenv myenv 命令在外部exFAT上创建虚拟环境时,它给出了我共享的错误。但是我可以使用相同的命令在桌面上创建虚拟环境。这个问题对我来说很奇怪。我无法解决问题。你们能帮我吗?提前致谢!
示例代码:错误
Traceback (most recent call last):
File "/home/c/.local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 831, in main
symlink=options.symlink,
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 1106, in create_environment
install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 1390, in install_python
copy_required_files(stdlib_dir, lib_dir, symlink)
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 1300, in copy_required_files
copyfile(join(src_dir, fn), join(lib_dir, fn), symlink)
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 420, in copyfile
copy_file_or_folder(src, dest, symlink)
File "/home/c/.local/lib/python3.6/site-packages/virtualenv.py", line 398, in copy_file_or_folder
shutil.copytree(src, dest, symlink)
File "/usr/lib/python3.6/shutil.py", line 359, in copytree
raise Error(errors)
shutil.Error: [('/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.so', '/media/c/2NDTB/testpro/myenv/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.so', "[Errno 38] Function not implemented: '../../x86_64-linux-gnu/libpython3.6m.so.1' -> '/media/c/2NDTB/testpro/myenv/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.so'"), ('/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so', '/media/c/2NDTB/testpro/myenv/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so', "[Errno 38] Function not implemented: '../../x86_64-linux-gnu/libpython3.6m.so.1' -> '/media/c/2NDTB/testpro/myenv/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so'")]
在处理上述异常期间,发生了另一个异常:
<form:>
答案 0 :(得分:1)
我在您尝试执行的操作中遇到了两个问题。第一个较小的问题是FAT不会实现符号链接,而virtualenvs默认情况下会使用符号链接来创建该版本的python。您可以尝试virtualenv --always-copy
以避免符号链接。
但是随后您遇到了第二个更大的问题,您正在尝试在可移动驱动器上创建一个virtualenv并将其移植到某个地方。那行不通-虚拟环境不可重定位。当您需要在其他位置使用virtualenv时,必须重新创建它。要将已安装软件包的列表从一个virtualenv复制到另一个虚拟环境,请在原始virtualenv中运行:
pip freeze >requirements.txt
然后将文件requirements.txt
移动到另一个位置,创建一个新的virtualenv并还原软件包:
virtualenv venv2
source venv2/bin/activate
pip install -r requirements.txt