mkvirtualenv给出权限被拒绝错误

时间:2015-06-26 12:28:38

标签: python virtualenv virtualenvwrapper

运行时:     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

3 个答案:

答案 0 :(得分:4)

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

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

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

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

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

如果您没有w rite权限,则无法创建virtualenv所需的文件和文件夹。

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

sudo chown `whoami` .

之所以这不仅仅是简单的工作,可能是因为你遵循了一个使用sudo权限安装“virtualenvwrapper”的指南。

答案 1 :(得分:1)

我做了同样的问题我找到了:

  

echo $WORKON_HOME

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

只需要删除 .virtualenvs 路径后添加的extra_path 从 .bashrc 然后再次尝试创建 mkvirtualenv

答案 2 :(得分:-1)

我认为您无法创建测试虚拟环境。