如何解决问题的pip?权限被拒绝
我不是一个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
这样可以确保你的工作环境是本地的,避免了搞乱系统的风险。
更重要的是,不要以管理员身份进行操作,只作为普通用户。
希望这些对你有帮助。