not*_*ber 13 windows file-permissions python-3.x git-bash windows-store-apps
Windows 10上的更新似乎在一夜之间破坏了Python。仅尝试运行会python --version返回“权限被拒绝”错误。三个更新都没有;KB4507453,KB4506991或KB4509096看起来像是罪魁祸首,但问题的时机令人怀疑。我希望不会有回滚的麻烦,而是希望有一个更简单的修复程序丢失。
python上的权限为“ -rwxr-xr-x”,除了安装昨晚的补丁程序后让Windows更新重启计算机之外,我没有做任何更改。
根据系统信息,我正在运行10.0.18362
还应注意,无论我是否(尝试)使用“以管理员身份运行”从git-bash执行Python,并且如果我尝试使用PowerShell,它只会打开Windows存储,就像未安装该应用程序一样,所以这种情况正在发生我以为/c/Users/david/AppData/Local/Microsoft/WindowsApps/由于某种原因它看不到文件夹的内容。
我也尝试过重新安装Python 3.7.4,但这也无济于事。还有什么我应该看的吗?
not*_*ber 31
据我所知,这是由于与Windows Store中最近添加的Python 3.7版本发生冲突所致。它看起来像叫python.exe和python3.exe到这增加了两个“存根” %USERPROFILE%\AppData\Local\Microsoft\WindowsApps文件夹,在我的情况,这是插入之前在我现有的Python可执行程序的入口PATH。
将此条目移到正确的Python文件夹下面(部分地)可以解决此问题。
纠正它的第二部分是在Windows搜索提示中键入“管理应用程序执行别名”,并完全禁用Python的商店版本。
您可能只需要做第二部分,但是在我的系统上,我做了两个更改,现在一切都恢复了正常。
Jai*_*Jai 18
这个问题太常见了,无法持续存在。大多数答案和说明都没有解决这个问题。以下是在 Windows 10 上的操作:
environment variables在开始搜索栏中键入,然后打开Edit the System Environment Variables。
单击环境变量...
在 System Variables 部分,使用 键找到变量Path并双击它。
查找指向 python 文件的路径。可能没有。如果有,请选择并删除它们。
创建一个新变量,设置为 python 可执行文件的路径。通常这是C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38. 通过文件资源管理器检查来确保这一点。
注意:如果您看不到AppData,那是因为您没有启用查看隐藏项目:单击查看选项卡并勾选隐藏项目复选框。
创建另一个指向Scripts目录的变量。通常是C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts。
重新启动终端,并尝试打字py,python,python3,或python.exe。
Sha*_*eel 11
解决方法:如果您已经从 exe 安装了 python,请按照以下步骤操作。
第一步:卸载python
第 2 步:安装 python 并检查 Python 路径复选框,如下面的屏幕截图(黄色)中突出显示。
这解决了我的问题。
对于想要使用 Microsoft Store版本的 Python的人来说,在@Zooba进行相关的“管理应用程序执行别名”修复后,并且正在使用Git for Windows git-bash(也称为通过 msys2 的 BASH) mintty),解决方案很可能只是记住用 . ' 进行调用。winpty
winpty python3
Run Code Online (Sandbox Code Playgroud)
但是,如果系统有其他版本的 Python,请确保这些副本已被删除(例如从python.org安装的副本)或包含在其特定的捆绑应用程序中(例如 OSGeo4W)(可能需要重新排序环境变量)。
为什么如果winpty忘记了,是权限错误吗?首次运行时,Microsoft Store 存根与 msys 可用的权限发生冲突。许多其他答案都详细介绍了正在发生的事情以及为什么感觉很奇怪。简而言之,存根试图成为通往 Microsoft Store 的便捷捷径。如果您使用 启动它winpty,它就可以做到这一点。第一次之后,winpty由于与 Microsoft Store 相关和不相关的原因,它仍然需要 Microsoft Store。
中的所有文件%USERPROFILE%\AppData\Local\Microsoft\WindowsApps都是占位符,它们指向实际位于中的某个位置的文件,而这些文件C:\Program Files\WindowsApps恰好被完全拒绝了权限。
重复出现此问题后,我的陈述似乎正确无误:
“似乎他们没有真正考虑过分配方法会被权限搞砸!”
来源:无法在Windows上的Git Bash中安装pylint(Windows应用商店)
由于WindowsApps分发方法,权限被浪费了很多:
有趣的是,“用户”组以及我的特定用户都可以读取和执行文件,但是出于某些不可思议的原因,“管理员”组只能列出文件夹内容。当尝试在文件资源管理器中访问该文件夹时,它甚至拒绝显示该文件夹的内容,因此也有些麻烦。
有趣的是,即使python在CMD中执行工作也很好,但在其所在目录中列出文件时,“ WindowsApps”文件夹不会出现,并且尝试导航到该文件夹时会产生“权限被拒绝”错误:
尝试更改权限需要先更改所有者,因此我将所有者更改为Administrators组。此后,我尝试更改Administrators组的权限以包括“完全控制”权限,但是由于“拒绝访问”(du,Micro $ ucks,这就是我们要更改的权限),因此无法更改此权限。
这个权限错误发生在太多文件上,以至于我使用Alt + C在重复消息上快速单击“继续”,但这仍然花费了太长时间,因此我取消了此过程,从而弹出了以下警告消息:
现在,我无法将TrustedInstaller用户重新设置为WindowsApps文件夹的所有者,因为它没有显示在“用户/组/内置安全性原则/其他对象”列表中。*
*实际上,根据本教程,您可以通过NT Service\TrustedInstaller在对象名称文本框中输入内容来将所有者交换回TrustedInstaller 。
没有解决办法。基本上,我们完全被搞砸了。微软的经典举动。
小智 5
这不是 PowerShell 的解决方案,但除了 MINGW64 外,我遇到了同样的问题。我通过切换到适用于 Linux 的 Windows 子系统(无论如何我都想做)作为我的终端来解决这个问题,只是一般情况下和在 VSCode 中。这篇文章很好地描述了它:
如何配置 VS Code (windows) 以使用 Ubuntu App 作为终端
总之:
1) 从 Windows App Store 安装 Ubuntu
2) 从 CMD -> wslconfig /setdefault Ubuntu 更改默认 bash
--- 对于 VSCode
3)重启VSCode
4) 在 VSCode 中,将“terminal.integrated.shell.windows”更改为“C:\WINDOWS\System32\bash.exe”(更多详细信息请参见上面的帖子)
现在可以在 VSCode 和 WSL(Windows 上的 Ubuntu 上的 Bash)中顺利运行。可能至少是您的临时解决方案。
对我来说,我尝试manage app execution aliases并得到一个错误,python3 不是命令,因此,我使用了py而不是python3并且它起作用了
我不知道为什么会这样,但它对我有用
| 归档时间: |
|
| 查看次数: |
11242 次 |
| 最近记录: |