如何解决问题的pip?权限被拒绝

-2 投票
1 回答
66 浏览
提问于 2025-04-12 09:00

我不是一个Python开发者,但我想试试一些LlAMA的模型,不过我觉得我搞乱了PIP这个工具。

我在Mac电脑上,安装了Python 3.11,但是当我输入命令python3.11 -m pip install numpy时,出现了这个错误:

ERROR: Exception:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/shutil.py", line 853, in move
    os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: '/private/var/folders/_f/zg7ly97n4kl58rn_vnfddfhw0000gn/T/pip-target-ii00g2i_/lib/python/numpy-1.26.4.dist-info' -> '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy-1.26.4.dist-info'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 510, in run
    self._handle_target_dir(
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 569, in _handle_target_dir
    shutil.move(os.path.join(lib_dir, item), target_item_dir)
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/shutil.py", line 869, in move
    copytree(src, real_dst, copy_function=copy_function,
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/shutil.py", line 573, in copytree
    return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/shutil.py", line 471, in _copytree
    os.makedirs(dst, exist_ok=dirs_exist_ok)
  File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy-1.26.4.dist-info'

让我觉得特别奇怪的是,报错的权限被拒绝的库是Python 3.10,但我想用的是3.11。而且,当我打开Visual Studio时,它能看到两个解释器,分别是3.9和3.11。

另外,我之前在使用不同版本的Python时遇到了一些问题,所以在删除某些版本时可能犯了错误。

我非常感谢任何帮助,因为我完全搞不清楚状况,但真的很想试试llama!

1 个回答

0

首先,我强烈建议你在开发时不要使用全局安装,否则可能会搞乱你的系统。

我建议你创建一个小的虚拟环境,这样可以在本地创建一个环境,并在本地文件夹中进行所有安装。

举个例子:我在/storage/PyENV/lin这个文件夹里创建一个新的环境:

python3.11 -mvenv TestENV

当你查看这个目录时,你会看到这样的结构:

drwxr-xr-x 2 tamer tamer 4096 Mar 28 22:26 bin
drwxr-xr-x 3 tamer tamer 4096 Mar 28 22:26 include
drwxr-xr-x 3 tamer tamer 4096 Mar 28 22:26 lib
lrwxrwxrwx 1 tamer tamer    3 Mar 28 22:26 lib64 -> lib
-rw-r--r-- 1 tamer tamer  193 Mar 28 22:26 pyvenv.cfg

现在你进入这个环境,就可以轻松地在这个本地文件夹中进行安装。

source bin/activate

在这里,你可以使用pip进行任何安装,比如这个叫“django”的示例安装:

   /storage/PyENV/lin/TestENV  pip install django                                                                                                                                    
 ✔  TestENV  
Collecting django
Downloading Django-5.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting asgiref<4,>=3.7.0 (from django)
Downloading asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB)
Collecting sqlparse>=0.3.1 (from django)
Downloading sqlparse-0.4.4-py3-none-any.whl.metadata (4.0 kB)
Downloading Django-5.0.3-py3-none-any.whl (8.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 12.5 MB/s eta 
0:00:00
Downloading asgiref-3.8.1-py3-none-any.whl (23 kB)
Downloading sqlparse-0.4.4-py3-none-any.whl (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.2/41.2 kB 1.8 MB/s eta 
0:00:00
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.8.1 django-5.0.3 sqlparse-0.4.4

当你查看这个文件夹:

/storage/PyENV/lin/TestENV/lib/python3.11/site-packages

你会发现所有的包都安装在这个“虚拟环境目录”中,而不是全局目录:

   /storage/PyENV/lin/TestENV/lib/python3.11/site-packages  ls -lA                                                                                                                   
 ✔  TestENV  
total 52
drwxr-xr-x  3 tamer tamer 4096 Mar 28 22:29 asgiref
drwxr-xr-x  2 tamer tamer 4096 Mar 28 22:29 asgiref-3.8.1.dist-info
drwxr-xr-x  3 tamer tamer 4096 Mar 28 22:26 _distutils_hack
-rw-r--r--  1 tamer tamer  151 Mar 28 22:26 distutils-precedence.pth
drwxr-xr-x 18 tamer tamer 4096 Mar 28 22:29 django
drwxr-xr-x  2 tamer tamer 4096 Mar 28 22:29 Django-5.0.3.dist-info
drwxr-xr-x  5 tamer tamer 4096 Mar 28 22:26 pip
drwxr-xr-x  2 tamer tamer 4096 Mar 28 22:26 pip-24.0.dist-info
drwxr-xr-x  5 tamer tamer 4096 Mar 28 22:26 pkg_resources
drwxr-xr-x  8 tamer tamer 4096 Mar 28 22:26 setuptools
drwxr-xr-x  2 tamer tamer 4096 Mar 28 22:26 setuptools-65.5.0.dist-info
drwxr-xr-x  5 tamer tamer 4096 Mar 28 22:29 sqlparse
drwxr-xr-x  2 tamer tamer 4096 Mar 28 22:29 sqlparse-0.4.4.dist-info

这样可以确保你的工作环境是本地的,避免了搞乱系统的风险。

更重要的是,不要以管理员身份进行操作,只作为普通用户。

希望这些对你有帮助。

撰写回答