【发布时间】: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