2

我正在为我的 Python 用户组进行一次关于 pipenv 包的演讲。

我肯定在试图让它工作时遇到了麻烦。我正在使用Hitchhiker's Guide to Python中的说明作为参考。

这是我的安装命令及其输出:

➜  ~ sudo -H pip install --user pipenv
Collecting pipenv
  Using cached pipenv-8.2.2.tar.gz
Requirement already satisfied: virtualenv in /Library/Python/2.7/site-packages (from pipenv)
Requirement already satisfied: pew>=0.1.26 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pip>=9.0.1 in /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (from pipenv)
Requirement already satisfied: requests>2.18.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: flake8 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: urllib3>=1.21.1 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pathlib; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: shutilwhich; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: backports.shutil-get-terminal-size; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: pythonz-bd>=1.10.2 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: virtualenv-clone>=0.2.5 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Collecting setuptools>=17.1 (from pew>=0.1.26->pipenv)
  Using cached setuptools-36.5.0-py2.py3-none-any.whl
Requirement already satisfied: idna<2.7,>=2.5 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: certifi>=2017.4.17 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: pyflakes<1.6.0,>=1.5.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: enum34; python_version < "3.4" in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: configparser; python_version < "3.2" in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: pycodestyle<2.4.0,>=2.0.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Installing collected packages: pipenv, setuptools
  Running setup.py install for pipenv ... done
Successfully installed pipenv-8.2.2 setuptools-36.5.0
➜  ~ pipenv
zsh: command not found: pipenv

我尝试了安装命令的各种排列,并将目录作为 PATH 的一部分添加/Users/<my username>/Library/Python/2.7/bin到我的目录中。.zshrc这是输出python -m site

➜  ~ python -m site
sys.path = [
    '/Users/<my_name_here>',
    '/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
    '/Users/<my_name_here>/Library/Python/2.7/lib/python/site-packages',
    '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
    '/Library/Python/2.7/site-packages',
]
USER_BASE: '/Users/<my_name_here>/Library/Python/2.7' (exists)
USER_SITE: '/Users/<my_name_here>/Library/Python/2.7/lib/python/site-packages' (exists)
ENABLE_USER_SITE: True

我在这里想念什么?这是我应该参考开发人员的东西吗?

编辑:

在没有 --user 并且只有 sudo 的情况下运行,这是我的结果:

➜  ~ sudo -H pip install pipenv
Requirement already satisfied: pipenv in /private/var/root/Library/Python/2.7/lib/python/site-packages
Requirement already satisfied: virtualenv in /Library/Python/2.7/site-packages (from pipenv)
Requirement already satisfied: pew>=0.1.26 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pip>=9.0.1 in /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (from pipenv)
Requirement already satisfied: requests>2.18.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: flake8 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: urllib3>=1.21.1 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pathlib; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: shutilwhich; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: backports.shutil-get-terminal-size; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: pythonz-bd>=1.10.2 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: virtualenv-clone>=0.2.5 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Collecting setuptools>=17.1 (from pew>=0.1.26->pipenv)
  Using cached setuptools-36.5.0-py2.py3-none-any.whl
Requirement already satisfied: idna<2.7,>=2.5 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: certifi>=2017.4.17 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: pyflakes<1.6.0,>=1.5.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: enum34; python_version < "3.4" in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: configparser; python_version < "3.2" in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: pycodestyle<2.4.0,>=2.0.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /private/var/root/Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Installing collected packages: setuptools
  Found existing installation: setuptools 1.1.6
    Uninstalling setuptools-1.1.6:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 299, in move
    copytree(src, real_dst, symlinks=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
Error: [('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', "[Errno 1] Operation not permitted: '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', "[Errno 1] Operation not permitted: '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', "[Errno 1] Operation not permitted: '/tmp/pip-WRGjnq-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib'")]

并且没有 sudo:

➜  ~ pip install --user pipenv
Collecting pipenv
  Using cached pipenv-8.2.2.tar.gz
Requirement already satisfied: virtualenv in /Library/Python/2.7/site-packages (from pipenv)
Requirement already satisfied: pew>=0.1.26 in ./Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pip>=9.0.1 in /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (from pipenv)
Requirement already satisfied: requests>2.18.0 in ./Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: flake8 in ./Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: urllib3>=1.21.1 in ./Library/Python/2.7/lib/python/site-packages (from pipenv)
Requirement already satisfied: pathlib; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: shutilwhich; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: backports.shutil-get-terminal-size; python_version == "2.7" in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: pythonz-bd>=1.10.2 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Requirement already satisfied: virtualenv-clone>=0.2.5 in /Library/Python/2.7/site-packages (from pew>=0.1.26->pipenv)
Collecting setuptools>=17.1 (from pew>=0.1.26->pipenv)
  Using cached setuptools-36.5.0-py2.py3-none-any.whl
Requirement already satisfied: idna<2.7,>=2.5 in ./Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in ./Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: certifi>=2017.4.17 in ./Library/Python/2.7/lib/python/site-packages (from requests>2.18.0->pipenv)
Requirement already satisfied: pyflakes<1.6.0,>=1.5.0 in ./Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: enum34; python_version < "3.4" in ./Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: configparser; python_version < "3.2" in ./Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: pycodestyle<2.4.0,>=2.0.0 in ./Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in ./Library/Python/2.7/lib/python/site-packages (from flake8->pipenv)
Installing collected packages: pipenv, setuptools
  Running setup.py install for pipenv ... done
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '/Users/am034402/Library/Python/2.7/lib/python/site-packages/setuptools-36.5.0.dist-info/RECORD'
4

3 回答 3

1

您不应该同时使用sudo--user 在这里;这导致它只为超级用户安装。

要么只使用sudo,在这种情况下它将被全局安装,要么使用--user,所以它将只为您的用户安装。

于 2017-09-29T16:23:57.150 回答
0

最终通过升级到 OS X 10.12 Sierra 解决了这个问题。在撰写本文时(2017 年 9 月 29 日)可用的各种程序和库似乎在 El Capitan 上使用 pipenv 存在问题。

于 2017-09-29T20:08:20.357 回答
0

遇到类似的问题。真气。我想我知道这里发生了什么。

TL;DR:不要同时使用 'sudo -H' 和 'pip --user' 标志。

使用 'sudo -H' tell 将用户主目录 '~' 更改为 '/private/var/root',因此 pip 缓存,将内容安装在 '/private/var/root/Library/Python/2.7/lib/python/站点包'而不是'/User/nerdenator/Library/Python/2.7/lib/python/site-packages'。这使点子感到困惑。

对“/private/var/root”的访问(必然)被锁定。为了清除那个无意的缓存,我紧张地使用了“sudo rm -rf /private/var/root/Library/Python/2.7/lib/python/site-packages”,这似乎让我回到了正轨。

我不知道我在哪里找到了 'sudo -H pip install .... --user' 提示。但是 'sudo -H' 和 'pip install ... --user' 绝对不应该在 macOS 上一起使用。

YMMV。

于 2017-10-26T16:54:56.480 回答