Pyjnius: 安装 PyJNIus - PermissionError: [WinError 5] 访问被拒绝

创建于 2020-04-09  ·  15评论  ·  资料来源: kivy/pyjnius

我已经尝试了以下措施,但仍然弹出错误

以管理员角色运行cmd
将自己设置为管理员角色的 pycham 和 python 文件
使用 pip install --user PyJNIus
使用 python -m pip install --user PyJNIus
关闭 Pycham,以管理员身份运行 cmd
我已经拥有所有文件的最高访问权限
谁能帮我吗?

C:\WINDOWS\system32>python -m pip install --user PyJNIus
Collecting PyJNIus
  Using cached pyjnius-1.2.1.tar.gz (40 kB)
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\tom\AppData\Local\Programs\Python\Python38-32\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\tom\\AppData\\Local\\Temp\\pip-install-ueh9n_76\\PyJNIus\\setup.py'"'"'; __file__='"'"'C:\\Users\\tom\\AppData\\Local\\Temp\\pip-install-ueh9n_76\\PyJNIus\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\pip-egg-info'
         cwd: C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\
    Complete output (15 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\setup.py", line 92, in <module>
        compile_native_invocation_handler(*get_possible_homes(PLATFORM))
      File "C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\setup.py", line 82, in compile_native_invocation_handler
        subprocess.check_call([
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 359, in check_call
        retcode = call(*popenargs, **kwargs)
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 340, in call
        with Popen(*popenargs, **kwargs) as p:
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 854, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1307, in _execute_child
        hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    PermissionError: [WinError 5] Acess denied
awaiting-reply

最有用的评论

几个月前,我重写了env.py ——它负责追踪 JDK/JRE,它是一个出色的 Pull Request——见https://github.com/kivy/pyjnius/pull/541——所以我个人不想调试旧版本!

所有15条评论

嗯,你机器上有javac/ant吗? 我怀疑它只是无法运行丢失的程序(我过去曾看到 Windows 将其报告为权限错误,而不是文件未找到错误)。

我们必须在发行版中添加一个 python3.8 目标,因此在那里安装会更容易。
编辑:实际上我们有一个适用于 python3.8 的版本,但似乎只适用于 amd64,而且你有一个 32 位的 python。

你好....

我正在 Windows 10 上使用 Python 3.7(32 位),在 CMD 窗口中运行“pip install pyjnius”后我看到了同样的错误。 在网上搜索后,弹出最多的建议是关于文件权限和以管理员身份执行命令。 两者都不起作用。

我也尝试了以下方法,但无济于事:

1.) 卸载 Python,重新安装 Python 3.7.7(32 位),然后“pip install pyjnius”

2.) 从 https://github.com/kivy/pyjnius/releases/download/1.3.0/pyjnius-1.3.0.tar.gz 下载实际的 gz 文件。
a.) 解压缩文件。
b.) 打开 CMD 窗口
c.) 进入下载目录,C:UsersHomeDownloadspyjnius-1.3.0.tardistpyjnius-1.3.0pyjnius-1.3.0
d.) 执行以下命令:执行以下命令:python setup.py

3.) 尝试从其 git repo 安装。
a.) 尝试过 - pip install git+git://github.com/kivy/pyjnius.git#egg=pyjnius
b.) 尝试过 - pip install git+ https://github.com/kivy/pyjnius.git#egg =pyjnius

任何帮助,将不胜感激...

错误如下:

回溯(最近一次调用最后一次):
文件“setup.py”,第 95 行,在
compile_native_invocation_handler( get_possible_homes(平台))文件“setup.py”,第 87 行,在 compile_native_invocation_handler 中join('jnius', 'src', 'org', 'jnius', 'NativeInvocationHandler.java')check_call 中的文件“C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py”,第 358 行retcode = call( popenargs, *kwargs)文件“C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py”,第 339 行,调用中使用Popen
文件“C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py”,第 800 行,在 __init__ 中
restore_signals,start_new_session)
_execute_child 中的文件“C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py”,第 1207 行
启动信息)
PermissionError: [WinError 5] 访问被拒绝

当我们尝试运行的程序没有找到时也会报这个错误,这里setup.py尝试运行ant/javac来构建一些java代码,所以我认为是在路径中找不到它而失败,你能检查一下吗?你两者都有吗?

但我想知道你为什么使用 32 位 python? 我们只为64位版本提供了一个轮子,也许我们可以为32位版本提供一个轮子,但这有点工作,在这一点上真的感觉人们应该从那里转移,不能安装64位吗?位发布python? 如果这样做,pyjnius 应该无需任何编译即可安装。

嗨,加布里埃尔,

感谢您的反馈。 我会考虑安装 64 位版本的 Python,然后是 pyjnius。 如果一切正常,我会在这里留下一张纸条。

有帮助吗?

@tshirtman

我继续安装了 64 位 Python 版本并安装了 pyjnius 模块,没有任何问题。

我确实问过自己,“你为什么使用 32 位版本?” 我真的想不出一个好的答案。 因此,我做了一个清单并将我在 32 位中拥有的模块安装到 64 位中,并且在更新 PATH 之后,我的每个 .py 文件都可以正常执行。

谢谢,我感谢后续...

:)

伟大的!

我开始考虑构建 windows 32 位 btw (#536),似乎我们有几件事情需要修复,所以也许会来,但我不知道什么时候,这么好的事情你可以移动在:D。

你好,
这可能值得注意。
我没有将 python 安装为 32 位应用程序,尽管我怀疑这与在 appdata 下安装的 32 位 python 有关(尽管我不记得我将它安装为 32 位应用程序)。
我必须实际打开一个提升的命令提示符,然后遍历程序文件下的 python 文件夹并运行命令
.python.exe -m pip install pyjnius
正确安装pyjnius。

不确定这是多么有用/无用。

我今天遇到了这个问题。 我最初使用的是 Python 3.8 32 位(不知道为什么我安装了 32 位而不是 64 位),然后看到这个问题并升级到 Python 3.9 64 位。 升级后,我在编译时仍然遇到同样的问题。 尝试使用提升的命令提示符,转到 python 的实际安装目录并运行前面评论中提到的命令,但我仍然无法让它工作。

然后我查看了 pypi 并看到为 python 3.8 64 位提供了轮子,所以我切换到该版本并安装了 pyjnius。

如果可以在文档中更清楚地说明这一点,以便新用户的安装过程更容易,那就太好了。 尤其是因为 pyjnius 似乎还不能在 Windows 上与 python 3.9 一起安装。

那么,您是否拥有 JRE 而不是 JDK?
javac 在你的路上吗?

我安装了 OpenJDK 11(jdk-11.0.8.10-hotspot),是的, javac在我的路径上。

所以 3.9 现在在持续部署 github 操作脚本上(截至 4 天前) - 请参阅https://github.com/kivy/pyjnius/blob/master/.github/workflows/create.yml#L13 - 所以我认为下一个版本将在 Windows 上为 Python 3.9 64 位提供二进制分发版。

听起来还不错!

知道为什么通过 pip 安装时会出现问题并且没有可用的预构建包吗? 我快速查看了 setup.py 脚本以及 env.py 脚本以查看路径是如何确定的,AFAICT 应该没有权限错误(或文件未找到错误),因为 javac 的路径应该已经解决了正确。

几个月前,我重写了env.py ——它负责追踪 JDK/JRE,它是一个出色的 Pull Request——见https://github.com/kivy/pyjnius/pull/541——所以我个人不想调试旧版本!

我有同样的问题,但我可以在 Windows 10 的 Ubuntu App 上使用 Anaconda Anaconda安装它 >> 因为 Anaconda 本身并不容易处理

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Hukuta picture Hukuta  ·  5评论

stania picture stania  ·  6评论

cthoyt picture cthoyt  ·  11评论

hanslovsky picture hanslovsky  ·  3评论

Thrameos picture Thrameos  ·  27评论