【问题标题】:Python paths not being set on embedded installation嵌入式安装中未设置 Python 路径
【发布时间】:2019-07-08 21:10:30
【问题描述】:

我正在尝试让 python3 在我的 EspressoBin 单板计算机 (aarch64) 上运行。我使用 Marvell 的 openembedded 发行版构建了一个 linux 发行版,并包含了 python3

问题是没有设置python的搜索路径/环境变量。

如果我尝试启动 python3,我会得到:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x0000007faef06000 (most recent call first):
Aborted

但是,如果我这样做:

$ export PYTHONHOME="/usr/lib64/python3.5/"
$ export PYTHONPATH="/usr/lib64/python3.5/:/usr/lib64/python3.5/lib-dynload"
$ python3
Python 3.5.1 (default, Jan 14 2019, 23:24:54) 
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

然后一切都会神奇地工作。

所以问题是……这些东西通常在哪里/如何设置?我尝试与 Ubuntu 进行比较,但由于某种原因,这些环境变量甚至根本不存在!我检查了sys.path 上的文档,它说sys.path 是从PYTHONPATH 填充的,“加上依赖于安装的默认值”。所以我猜 Ubuntu 的“依赖于安装的默认设置”预先填充了正确的路径?

我目前的解决方案是将这两个环境变量添加到 /etc/environment/etc/profile(用于 ssh 连接),但这似乎是一个 hacky 解决方法,我想正确地做。

【问题讨论】:

  • 你使用的是window操作系统吗?
  • 不,Xubuntu 18.04 构建,部署到 EspressoBin(运行 marvell-linux)

标签: python linux python-3.x openembedded linux-distro


【解决方案1】:

".../lib64/..." 到 python3.5 的路径看起来不是默认的,

"默认在prefix/lib/pythonversion中搜索库 和exec_prefix/lib/pythonversion "source

所以我猜这可能与此有关,如果您可以重新安装或修改它以安装在 "/lib/" 而不是 "/lib64/" 中,则不需要设置这两个环境变量。

【讨论】:

  • 确实,添加软链接/usr/lib/python3.5 -&gt; /usr/lib64/python3.5 似乎可以解决问题(我能够消除环境变量)。 lib64 必须是 openembedded 选择的一些安装前缀,因为架构 aarch64... 我得研究一下。谢谢!
  • 确认我的${libdir}由于架构aarch64正在从默认lib更改为lib64
  • 解决方案是修改python配方,修改local.conf,或者在ROOTFS_POSTPROCESS_COMMAND中添加软链接
【解决方案2】:

从 Python 源代码树中的 Modules/getpath.c 开始并不是一个坏主意。

哦,还有:似乎版本不匹配? Python 是 3.6,但你给它提供了 3.5 的模块?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多