诗歌更新访问被拒绝

问题描述 投票:0回答:2
我在 Windows 上的 conda 环境中使用诗歌。尽管我在提升的 shell 中工作(管理员权限),但对于涉及

.dll

 的包(例如tensorflow 或 scipy),我的访问始终被拒绝。

conda create --name test python=3.7 conda activate test pip install poetry poetry add "tensorflow=1.5.1" scipy pandas poetry install poetry add "tensorflow=1.4.1" poetry install
会回到我身边

ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied:
    
python python-poetry
2个回答
0
投票
对于那些来这里参观的人,我现在的行动计划是:

    移至高架外壳
  1. 从应用程序数据中删除诗歌缓存。
  2. 重复运行
  3. poetry install
    。通常每次都会在不同的包上失败。
  4. 如果全部失败,请使用
  5. pip install ...
     来作弊该包

0
投票
有时会出现这种情况,因为环境的更新(在安装过程中)试图替换诗歌本身使用的包。

对于纯Python包,通常可以毫无怨言地进行替换,因为解释器已经将模块加载到内存中并且不需要文件。

对于使用编译库(

.dll

.pyd
)的包,此 Python 解释器会锁定文件不被删除。  这将导致 
[WinError 5] Access is denied...
 类型错误。

困扰我的一个问题是

charset-normalizer

 包,它使用 
.pyd
 文件。  存储库的定义是 
charset-normalizer==3.4.0
,而诗歌环境当前具有 
charset-normalizer==3.3.2
,因此它试图在升级时删除它。  由于诗歌.exe 正在使用此文件,因此该过程将失败并出现相同的 
[WinError 5]

要解决此问题,您可以使用 pip 手动更正文件版本:

  • pip uninstall my_problem_package
    
    
  • 重新安装所需版本的软件包,该版本将与您的存储库配合使用 (
  • pip install my_problem_package==1.0.0
    )。
这当然是假设包装上的微小差异可以忽略不计,而诗歌只是迂腐的。

在其他情况下,可能正在运行一些正在使用该文件的其他进程。 您可以尝试搜索并关闭有问题的进程(如果也失败则重新启动)。 被锁定的违规文件可能会通过其他答案找到:

https://superuser.com/questions/117902/find-out-which-process-is-locking-a-file-or-folder-in-windows

© www.soinside.com 2019 - 2024. All rights reserved.