不能安装/卸载Python包,因为出现了ValueError和PermissionError:[WinError 32]。

4

我对Python和ArcGIS Pro都是新手,刚刚开始学习,并试图安装一些Python包来使用空间数据框架(SEDF)读取、修改和写入要素类文件。为了做到这一点,我需要先安装几个包。我在PyCharm中创建了一个虚拟环境,并成功安装了一些包,但现在当我尝试安装或卸载任何新的包时,会出现以下错误:

Traceback (most recent call last):
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\importlib\_common.py", line 89, in _tempfile
    os.write(fd, reader())
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\importlib\abc.py", line 371, in read_bytes
    with self.open('rb') as strm:
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\importlib\_adapters.py", line 54, in open
    raise ValueError()
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.3\plugins\python-ce\helpers\packaging_tool.py", line 114, in main
    do_install(pkgs)
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.3\plugins\python-ce\helpers\packaging_tool.py", line 59, in do_install
    run_pip(['install'] + pkgs)
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.3\plugins\python-ce\helpers\packaging_tool.py", line 73, in run_pip
    runpy.run_module(module_name, run_name='__main__', alter_sys=True)
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 209, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\__main__.py", line 29, in <module>
    from pip._internal.cli.main import main as _main
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\cli\main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\cli\autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\cli\main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\cli\cmdoptions.py", line 23, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\cli\parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\configuration.py", line 20, in <module>
    from pip._internal.exceptions import (
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_internal\exceptions.py", line 13, in <module>
    from pip._vendor.requests.models import Request, Response
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_vendor\requests\__init__.py", line 135, in <module>
    from . import utils
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\pip\_vendor\requests\utils.py", line 27, in <module>
    from . import certs
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\importer.py", line 170, in exec_module
    notify_module_loaded(module)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\decorators.py", line 470, in _synchronized
    return wrapped(*args, **kwargs)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\importer.py", line 136, in notify_module_loaded
    hook(module)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\certifi_win32\wrapt_pip.py", line 35, in apply_patches
    import certifi
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\importer.py", line 170, in exec_module
    notify_module_loaded(module)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\decorators.py", line 470, in _synchronized
    return wrapped(*args, **kwargs)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\wrapt\importer.py", line 136, in notify_module_loaded
    hook(module)
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\certifi_win32\wrapt_certifi.py", line 20, in apply_patches
    certifi_win32.wincerts.CERTIFI_PEM = certifi.where()
  File "C:\Users\alexis\Documents\Wardrobe\Testvenv1\lib\site-packages\certifi\core.py", line 37, in where
    _CACERT_PATH = str(_CACERT_CTX.__enter__())
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "C:\Users\alexis\AppData\Local\Programs\Python\Python310\lib\importlib\_common.py", line 95, in _tempfile
    os.remove(raw_path)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\alexis\\AppData\\Local\\Temp\\tmp0nrmgsas'

到目前为止,我尝试了以下方法:
- 给PyCharm赋予管理员权限 - 在终端中使用pip(无论我如何安装/卸载软件包,始终返回相同的错误消息) - 尝试下载其他软件包(相同的错误消息) - 重新启动计算机/PyCharm - 使用ArcGIS Pro创建克隆环境GDAL、Fiona和其他软件包可以安装。然而,Fiona似乎从未正确安装过,所以现在我正在尝试在PyCharm中使用虚拟环境运行空间数据帧所需的软件包。 看起来计算机似乎在说有一个文件仍处于打开状态,必须关闭它才能安装/卸载其他软件包。但是,我不确定该如何做,或者那个文件到底是什么。
尽管出现ValueError和PermissionError,脚本仍然可以正常运行;我只是无法安装或卸载任何东西。
简而言之,我同时有两个问题:(1)软件包Fiona似乎从未正确安装过,(2)现在我被卡在了一个ValueError和PermissionError上,这使得我无法安装/卸载其他软件包。
我使用的是Python 3.10.2,PyCharm 2021.3.3和Windows 10,64位。
我已经陷入了这个问题一段时间了。非常感谢您的任何建议!

在运行 pip 之前,请以管理员身份启动 Windows 控制台会话。如果安装是“适用于所有用户”,则卸载也必须如此,并且需要提升的权限。 - BoarGules
我遇到了同样的问题。我能够复制的方法是在任何环境中运行 pip install arcgis。如果它是虚拟环境,我发现让工作环境正常的唯一方法是完全删除环境并重新创建它。如果它是主要环境,我唯一能够“恢复”的方法是卸载 Python,删除 Lib 文件夹并重新安装 Python。这对我来说破坏了 Python 3.10.2 和 3.7.9。在两个版本中,pip listimport arcgisimport requests 都无法使用。但在 3.7.9 中,pippip freeze 仍然可以正常使用。 - Freek
我还发现使用 --no-deps 标志安装 arcgis 不会破坏环境,因此问题似乎出现在其中一个依赖项上。 - Freek
我在想在PyCharm中使用Conda环境是否可以帮助解决依赖问题;包或它们的依赖关系会导致环境崩溃。 我需要一些软件包共同工作:arcgis,Fiona,Pandas,还有可能是其他几个。我目前正在观看一些YouTube视频,以更好地了解Anaconda是什么以及如何与PyCharm配合使用。也许这会有所帮助... - A.Student
我遇到了相同的错误,但是使用的不同的软件包。我发现这仅会在Python 3.10中出现,而Python 3.9则没有任何问题。根据您的日志,我所怀疑的主要原因是 python-certifi-win32,这也是我环境中存在的软件包之一。 - sourcream
Python 3.9是我在其中一台机器上使用的(我同时使用个人电脑和工作笔记本电脑工作),我想另一台机器正在使用3.7。最终,我使用Anaconda/Miniconda创建了一个环境,并一次性下载了我需要的软件包;这样,Anaconda/Miniconda可以确保所有软件包都是“兼容”的。还有一个帮助就是弄清楚Fiona对于空间启用数据框架并不是必需的;只有arcgisarcpy是必需的。 - A.Student
1个回答

0

我曾联系过Esri的帮助台,他们建议使用conda来安装软件包,而不是使用pip。这对我来说似乎起作用了。

既然我也想尝试使用pip来安装,我发现minimal install是一个选择,虽然你需要安装cachetoolslxmlrequests-oauthlib,即使它们没有在说明书中提到。这允许我使用import arcgis,所以似乎这个方法可以解决问题。我还没有时间仔细研究,但也许这个方法也适用于你。

只是提醒一下,在修复Python安装时,您需要重新安装Python,但需要在卸载和重新安装之间删除Lib文件夹。(或者如果您使用的话,删除并重新创建虚拟环境。)


"cachetools"、"lxml"和"requests-oauthlib"都很有用,谢谢!总的来说,我采取了一种稍微不同的方法。我下载了Anaconda(它专门针对数据分析),并在PyCharm中为anaconda/python.exe文件创建了一个Conda环境。它仍然对下载"arcgis"包感到困扰,但是PyCharm在错误消息中提供的建议是去这里:链接查找该包并将命令复制/粘贴到终端中。现在我有了"arcgis",但"fiona"仍然返回:"ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db"。 - A.Student

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接