【问题标题】:Python 3.7.3 import subprocess throws an errorPython 3.7.3 导入子进程抛出错误
【发布时间】:2019-08-29 20:01:59
【问题描述】:

AIX 7.1.0.0 上的 Python 3.7.3 导入子进程导致错误:

Traceback(最近一次调用最后一次):文件“main_iso_processing.py”, 第 3 行,在 导入子进程文件“”,第 983 行,在 _find_and_load 文件“”,行 963,在 _find_and_load_unlocked 文件“”中,第 906 行,在 _find_spec 文件中“”,第 1280 行,在 find_spec 文件中 “”,第 1249 行,在 _get_spec
文件“”,第 1213 行,在 _path_importer_cache PermissionError: [Errno 13] Permission denied

我已删除或注释掉除打印功能和子流程导入之外的所有内容。如果我注释掉导入子流程,它会起作用。另外,我可以导入 os 或 sys 而不会出现错误。

#!/opt/bin/python3
import subprocess
print("starting...")

我想使用 subprocess 来运行一些 DataStage 作业。

【问题讨论】:

  • 我的解决方案是否解决了您的问题?你找到不同的解决方案了吗?刚刚签到。
  • @Fletchy1995,感谢您的回答。我不明白的是 os 或 sys 的导入不会引发错误。子流程的导入有什么不同?
  • 看看这个链接:stackoverflow.com/questions/39777345/…也许这会有所帮助

标签: python-3.x


【解决方案1】:

您收到权限被拒绝错误。也许您的 python 环境的目录只能作为超级用户访问。尝试进入你的python环境的目录并更改权限。

Linux,运行以下命令:

$ sudo chown -R testuser:testuser /path/to/python

如果您不知道您的用户名类型:whoami 在控制台中,它会告诉您。

我的例子:

$ whoami
>>> guest
$ sudo chown -R guest:guest /usr/bin/python3

Windows 10: 按照link的说明进行操作

最后,您可能需要重新启动计算机才能使这些更改生效。

【讨论】:

  • Verose 日志记录有一个有趣的行 - Python 3.7.3 (default, May 10 2019, 07:51:10) [C] on aix6 我想知道问题是否在于子进程正在调用类似管道的东西或 ps 或 AIX 上没有权限的其他内容。
  • 可能,我会诚实地说我不确定。
  • 其他人也有同样的问题:stackoverflow.com/questions/52746387/… 我认为这是 AIX 管道文件的权限问题,但不确定。
猜你喜欢
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多