【问题标题】:creating a virtualenv gives a permission denied创建一个 virtualenv 给出一个权限被拒绝
【发布时间】: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 没有错误。

【问题讨论】:

标签: python virtualenv


【解决方案1】:

看起来您正在尝试在 /lib/python2.7/site-packages 内创建 virtualenv test,但无论如何,您不应该拥有写入权限。

先尝试运行cd ~,在你的主目录中创建venv。

【讨论】:

  • 从主目录执行它是可行的,所以这是一个很好的解决方法。我正在从我的项目目录(我的主目录的子目录)执行命令,所以我想知道为什么它不能从那里工作。
  • 在项目目录下做ls -lash。我的猜测是test 目录已经存在,或者. 由您以外的其他人拥有。要带走的关键是绝对不为此使用sudo。
  • 我每次使用命令前都会删除目录。运行命令后,我看到该目录归我当前用户所有。
  • 所以rm -rf test &amp;&amp; ls 显示test 仍然存在吗?如果没有,virtualenv [...] test 是否有效?
  • 没有删除目录。再次运行该命令时,我仍然收到相同的错误消息。
【解决方案2】:

我也遇到了同样的神秘错误;原来我忘记了 $HOME/.pip/pip.conf 中更改前缀的设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2022-01-12
    相关资源
    最近更新 更多