【发布时间】:2018-01-22 16:43:51
【问题描述】:
我正在尝试创建一个 virtualenv,但我收到了 Permission denied 错误。我正在使用以下代码
python2.7 -m virtualenv -p `which python2.7` test
这给出了这个错误信息:
--编辑--
我收到权限被拒绝错误
Traceback (most recent call last):
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_set.py", line 784, in install
**kwargs
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_install.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_install.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/wheel.py", line 287, in clobber
ensure_dir(dest) # common for the 'include' path
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/utils/__init__.py", line 83, in ensure_dir
os.makedirs(path)
File "/home/marco/development/openplus/lambda/resizeTestSam/test/lib/python2.7/os.py", line 152, in makedirs
makedirs(head, mode)
File "/home/marco/development/openplus/lambda/resizeTestSam/test/lib/python2.7/os.py", line 159, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/lib/python2.7'
最后一个错误导致操作失败
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv.py", line 2328, in <module>
main()
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv.py", line 713, in main
symlink=options.symlink)
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv.py", line 945, in create_environment
download=download,
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv.py", line 901, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/home/marco/.local/lib/python2.7/site-packages/virtualenv.py", line 797, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /home/marco/developm...m/test/bin/python2.7 - setuptools pip wheel failed with error code 2
为了调试os.py 中的错误,我添加了一个打印语句,看起来脚本试图创建目录/lib/python2.7 and /lib/python2.7/site-packages。我不明白为什么 virtualenv 试图在那里而不是在我当前的目录中创建这些目录。
我已经安装了没有 sudo 的 virtualenv,所以我不希望它在 root 拥有的路径中创建目录。
最后只有python可执行文件被复制到'test'目录,而不是setuptools、pip和wheels。
有没有办法避免 virtualenv 访问根目录?
--更新--
将 python3 与 venv 一起使用可以正常工作,问题出在 virtualenv 上。
从我的主目录执行 virtualenv 没有错误。
【问题讨论】:
-
请将错误消息作为代码而不是打印屏幕发布。
-
感谢您的参考,但它们并不完全适用于这个问题。其他用户在 virtualenv 中使用 pip 时遇到问题。我的问题出在之前的步骤中,在创建 virtualenv 时。由于这是一个权限问题,我可以使用 sudo 安装 virtualenv 并使用 sudo 安装 pip,但最终此代码将用于需要在没有 root 权限的情况下运行的脚本中,所以这不是一个选项。
标签: python virtualenv