pythonarm移植
Ⅰ 有没有大神试过把python解释器移植到单片机里
可以先一直linux,然后移植python,包括python需要的各种库!
Ⅱ 求助,现在可行的python电脑端向android端移植的方案
在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的事情,因为python脚本真是非常高效,另外,有很多非常好的库
android官方目前没有支持在android设备运行python,但是网上有一些项目组做了这个事情 这个链接就提供好几个项目,我稍微尝试了 Kivy 这种方式, 需要安装
的东西太多,就放弃了. 推荐 这种方式,使用 qpython 项目, 可以用非常少的付出得到 android 上可以运行的 python 环境.
5 relogin the shell
6. type python in the adb shell
root@generic:/ # python // 我尝试的时候,直接运行 python (其实是运行 /data/data/com.hipipal.qpyplus/files/bin/python ) 会报错: error: only position independent executables (PIE) are supported. 我测试的设备是 Nexus 6 , android 6.0 , 在
这些比较新的 android 系统上有保护,需要可执行程序使用 -PIE 进行编译,否则无法运行. 但我发现同样的目录下 python-android5 是可以运行的, 所以就 mv python python.bak ; ln -s python-android5 python ; 这样后面就可以直接运行 python 了.
Ⅲ 如何交叉编译Python到ARMLinux平台 / 蓝讯
步骤一:部署protoc.exe
1)sudo su ---进入管理模式
//以下操作切换至protobuf文件夹下
2)。/configure
3)make
4)make check
5)make install
此时可以查看protobuf文件夹下面的makefile文件,可以查看-build表示的本机环境以及-host表示的编译库的运行环境
我本地的-build=x86_64-apple-darwin12.3.0
-host=x86_64-apple-darwin12.3.0
(这两个参数在后续配置脚本需要用到,与后面脚步的i686-apple-darwin12.3.0以及arm-apple-darwin12.3.0后缀“arm-apple-darwin12.3.0”保持一致)
6)make distclean清理已生成的makefile,为交叉编译配置新makefile做准备
Ⅳ arm可以用python编程吗
不可以吧,没听说过这种应用。python语言是高级语言,是面向对象的,比较复杂。像arm这种操作寄存器的,一般用C语言比较低级的语言操作硬件。你想再arm上应用python语言写的应用程序,必须是在arm上加了系统,然后这个操作系统可以解析python语言(装解析软件。)。
Ⅳ 有哪位大神嵌入式ARM中移植python的库,求助啊
我没弄过ubuntu下的graphics.py。
但是弄过windows下的。
1. apt是用来安装Ubuntu系统的软件的。
2. Python是Ubuntu下面的一个软件。
3. 而graphics.py属于python中的第三方库函数。
所以,即使用apt,也是用apt去安装,更新python。
而python中的库,有自己的安装方法。
常见的是直接 setup.py install或者用pip之类的去安装。
具体安装的方法,自己去参考这个:
【待完善】【总结】Python安装第三方的库、package的方法
(此处不给贴地址,请用搜标题,即可找到帖子地址)
Ⅵ 如何交叉编译Python到ARM-Linux平台
平时编译python用的gcc,你装个交叉编译环境,把编译器改成arm-linux-gcc编译出来的就是arm版本的
Ⅶ 如何交叉编译Python到ARM-Linux平台
编译sqlite
先去 http://www.sqlite.org/download.html 下载最新的sqlite源代码,我这里用的是3.5.6版本的。
我推荐使用amalgamation版本的源代码,这个代码只有几个文件而已,编译起来方便,而且据说 编译器好的话,还可能编译出更高效的代码。 我下载的是
[plain]
view plain
http://www.sqlite.org/sqlite-amalgamation-3.5.6.tar.gz
先运行以下几步:
[plain]
view plain
tar zxf sqlite-amalgamation-3.5.6.tar.gz
cd sqlite-3.5.6
./configure --host=arm-linux --prefix=/usr/local/arm/3.3.2 --enable-shared --disable-readline --disable-dynamic-extensions
以上是把sqlite解压缩,然后做一些配置,这里,我希望sqlite到时候安装到/usr/local/arm/3.3.2里,要生成动态链接库,不要readline,不要sqlite的动态扩展。
然后编辑Makefile,把CFLAG和CXXFLAG中的-g去掉,我们不用debug sqlite。
接下来就可以编译和安装sqlite了:
[plain]
view plain
make
make install
这一步就完成了sqlite的编译和安装了。
编译python
先去http://www.python.org/download/下载最新版本的python源代码,我这里下载的是:
[plain]
view plain
http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2
先把python解压缩:
[plain]
view plain
tar jxf Python-2.5.1.tar.bz2
cd Python-2.5.1
编译pc版本的语法解析器
由于在编译python的时候,需要先编译一个叫pgen的程序出来,用于生成语法解析器,所以我们要先生成一个pc版本的pgen:
[plain]
view plain
mkdir build.pc
cd build.pc
../configure
make Parser/pgen
然后ls Parser一下,应该就能看到有pgen了。
修改configure
configure在检测编译器的printf是否支持%zd的时候,如果发现是在cross compile,就直接不干活了。这还了得?
把这一部分的检测代码去掉。这段代码起始于
[plain]
view plain
echo "$as_me:$LINENO: checking for %zd printf() format support" >&5
echo $ECHO_N "checking for %zd printf() format support... $ECHO_C" >&6
if test "$cross_compiling" = yes; then
结束于
[plain]
view plain
cat >>confdefs.h <<\_ACEOF
#define PY_FORMAT_SIZE_T "z"
_ACEOF
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
把这两段以及中间的内容都删除掉就可以了。
编译arm版本的python
有了语法解析器,就可以开始编译arm版本的python了。
[plain]
view plain
mkdir ../build.arm
cd ../build.arm
../configure --prefix=/home/leojay/test/arm-system-working/rootfs --disable-ipv6 --host=arm-linux --enable-shared
先创建一个用于编译的目录build.arm,再对python做一些配置,如安装目录,不要ipv6,使用arm-linux的编译器,生成动态链接库。
修改Makefile
之后就要对Makefile做一些修改,把
[plain]
view plain
OPT= -DNDEBUG -g -O3 -Wall -Wstrict-prototypes
一行中,去掉-g,我们不要debug python,-O3改为-O2,空间紧张O2就可以了。
在
[plain]
view plain
PGEN= Parser/pgen$(EXE)
一行的下面加上
[plain]
view plain
PGEN_HOST= ../build.pc/Parser/pgen$(EXE)
表明我们在HOST上运行的pgen
在要使用PGEN的地方改为PGEN_HOST:
[plain]
view plain
$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
-$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
改为:
[plain]
view plain
$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
-$(PGEN_HOST) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
修改所有使用新生成的python的地方。
所有如 ./$(BUILDPYTHON) 的地方,都改为python
如:
[plain]
view plain
platform: $(BUILDPYTHON)
$(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
改为
[plain]
view plain
platform: $(BUILDPYTHON)
$(RUNSHARED) python -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
这种地方比较多,大家小心修改。
修改setup.py
setup.py负责编译python的各个扩展模块。但是,由于python完全没有考虑cross compile,所以要做一些修改。
PyBuildExt类:
函数的前两行是把/usr/local加到搜索目录中,我们的cross compiler一般不会直接安装在 /usr/local里面的,所以这两行去掉:
[plain]
view plain
lib_dirs, inc_dirs的设定中,把中括号里的那些都去掉。 以下所有模块都不要:
这个函数在编译了所有的extension后,会去load这些刚编译好的extension, 但我们在i686的电脑上显然不能load,所以要跳过这些操作。 在 build_ext.build_extension(self, ext)后面直接写一个return,不做load。
for d in ['/usr/local/arm/3.3.2/include']
for d in inc_dirs + sqlite_inc_paths:
ssl, openssl, bdb, dbm, termios, nsl, ncurses, bz2, linuxaudiodev, ossaudiodev, tkinter
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
build_extension函数:
detect_moles函数:
cmath, ctypes, _testcapi, pwd, grp, spwd, mmap, audioop, imageop, rgbimg, readline,
[plain]
view plain
由于python本身的问题,现在ctypes还不能在除i386以外的机器上运行,所以ctypes也去掉 编译sqlite的地方:
[plain]
view plain
改为:
[plain]
view plain
因为我的sqlite3安装在这里,如果这里不改的话,setup.py会在我的电脑上找sqlite
main函数:
setup函数调用的时候,把要安装的scripts那一部分去掉
之后就可以make && make install了。
附上我修改后的 Makefile 和 setup.py 供大家参考
裁减python
python完全安装后,实在是很大,所以,要把一些肯定用不上的库去掉。 所以,再附上我的裁减脚本 cleanpy.sh
注意,由于我的python程序都运行在python -OO的参数下,所有的.py和.pyc都不需要, 只要有.pyo就可以了。所以,这个脚本会把所有的.py和.pyc都删除掉。
大家可以根据自己的需要做调整。
Ⅷ 塞班的python与安卓的python有何区别,能把塞班的python程序移植到安卓吗
python解释器本身用c/c++实现的,所以对于语言的核心部分,塞班的python与安卓的python是一样的,但是因为运行的操作系统不同,所以对应系统提供的专有的库肯定是不同的(例如创建界面环境的库),如果是十分依赖系统的库也应该是有差距的。
塞班的python程序不带界面的移植比较容易,但是带界面的移植也不能说完全不可能,但是难度肯定是非常大的。
Ⅸ python 移植到 arm 需要什么条件
如果arm下面的平台是Linux,那么可以直接安装。不过如果你需要通过python操作底层硬件,那么你需要自己编写一个模块去实现
如果arm下面是别的操作系统,或者是裸机,那么需要把python源代码重新进行编译,使用方法需要根据你的软件进行结合,这会比较麻烦