Python在iOS中的运用示例

iOS如何使用Python步骤

#include “Python.h"

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//init python

//get python lib path and set this path as python home directory

NSString* fullpath = [[NSBundle mainBundle] pathForResource:@"python" ofType:nil inDirectory:nil];

char home[1024];

NSLog(@"%@",fullpath);

strcpy(home, [fullpath UTF8String]);

Py_SetPythonHome(home);

Py_Initialize();

//执行python语句

PyRun_SimpleString("print 'hello'");//say hello see debug output :)

PyRun_SimpleString("print 'cathy'");//say hello see debug output :)

dispatch_queue_t queue = dispatch_queue_create(0, DISPATCH_QUEUE_CONCURRENT);

dispatch_async(queue, ^{

//执行python脚本

NSString *scriptPath = [[NSBundle mainBundle] pathForResource:@"python"    ofType:@“py"];

//从文件中读取要执行的代码

FILE *mainFile = fopen([scriptPath UTF8String], "r");

PyRun_SimpleFile(mainFile, (char *)[[scriptPath lastPathComponent] UTF8String]) ;

});

return YES;

}


标注1:

NSString *scriptPath = [[NSBundle mainBundle] pathForResource:@"python"    ofType:@“py"];

这句代码指的是下图1的路径下的python.py。

以下为该文件的代码

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import socket

print "This is a beautifulcathy"

图1


如图2所示

1.要在项目中执行python语句需要另一个工程的加入,

libPython.xcodeproj

即,一个工程加入另一个工程。

图2

二.知识点:一个工程加入另一个工程。

1.需要将两个工程放在同一级

目录下,如图3,导入

即是将后缀为 .xcodeproj 文件像一般添加文件到目标工程那样。

2.如图3

-1:项目是将libPython工程导入到trypythonagain 工程中。

-2:将python 这个重要的文件也要放在工程的同一级目录下。(不可缺的一个文件)


图3

-3:python 文件的引入

1).添加一个group,名为Bundles

图4

2).拖python文件到Bundles目录下

拖时注意勾选如图5

图5

3.一个工程导入另一个工程需要引入一些静态库

如图6

图6

point:liblibPython.a 是libPython(被导入到目标工程的子工程)的工程包。点击+ 时搜索lib 就可出现了。

4.遇到的问题

说找不到这个文件

图7


但是在子工程下明明有,

为什么找不到呢  如图8

图8


原因是:找不到子工程的目录

需要在Build Settings 中引入子工程的文件的目录。

图9

好了,现在大功告成了。在工程中执行了Python 语句

图10

下载链接: https://pan.baidu.com/s/1slr0kZr 密码: y98p

推荐阅读更多精彩内容