【问题标题】:mkvirtualenv gives permission denied errormkvirtualenv 给出权限被拒绝错误
【发布时间】:2015-06-26 12:28:38
【问题描述】:

运行时: mkvirtualenv 测试

我收到以下错误:

  File "/usr/lib/python3/dist-packages/virtualenv.py", line 2378, in <module>
    main()
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 830, in main
    symlink=options.symlink)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 999, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 1198, in install_python
    mkdir(lib_dir)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 451, in mkdir
    os.makedirs(path)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: 'test'

为什么没有创建“测试”虚拟环境?我确实尝试过 chmode -R 777 virtualenv 文件夹,但这并没有解决它。我确实在 Ubuntu 15.04 上安装了 python 2.7 和 3.4

【问题讨论】:

    标签: python virtualenv virtualenvwrapper


    【解决方案1】:

    您可能会收到错误,因为您无法在当前工作目录中创建 virtualenv 文件夹。

    如果您执行ls -ld .,您将看到正在运行命令的当前目录的输出,例如:

    ➜  ~  ls -ld .
    drwxr-xr-x+ 114 tfisher  staff  3876 Jun 26 08:46 .
    

    如果您执行whoami,您将获得当前用户的姓名。

    输出中有趣的部分通常是 ls -d . 命令的第一部分:drwxr-xr-x+。这意味着“这是一个目录,其中包含用户的读取、写入和执行,然后是组的读取执行,最后是其他所有人的读取和执行。”

    如果您没有write 权限,您将无法创建 virtualenv 需要的文件和文件夹。

    如果当前目录是您认为自己应该拥有的目录,例如/home/musicformellons,并且你有 sudo 权限,你可以通过运行来纠正这个问题:

    sudo chown `whoami` .
    

    这不仅仅是简单的工作的原因可能是因为您遵循了使用 sudo 权限安装“virtualenvwrapper”的指南。

    【讨论】:

    • 谢谢,但是经过一小段弯路后,我又遇到了同样的问题。我稍微编辑了错误消息,因为现在它似乎也混合了 python2 和 python3。但是我检查并确实拥有当前目录的权限......所以这不是问题......
    • 在更改了创建 virtualenvs 的(非默认)系统文件夹的权限并更改了一些 bashlines 之后,它可以正常工作。到目前为止,python2/3 似乎并没有受到伤害。我会将您的答案标记为正确,因为它确实与许可相关。但是对 virtualenv 文件夹的权限,而不是对当前文件夹的权限。
    【解决方案2】:

    我也做了同样的事情,我发现的问题是:

    echo $WORKON_HOME

    你会发现:/home/user/.virtualenvs/extra_path

    只是你需要删除在 .virtualenvs 路径之后添加的这个额外路径 从您的 .bashrc 然后 source 它再次尝试再次创建 mkvirtualenv

    【讨论】:

      【解决方案3】:

      我认为您不能创建测试 virtualenv。

      【讨论】:

        猜你喜欢
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-19
        • 2013-12-29
        • 1970-01-01
        • 2014-02-07
        相关资源
        最近更新 更多