cocos2d-x lua-binding:环境配置

327 阅读2分钟

推荐使用conda管理python环境

在mac下准备步骤:

  • 下载ndk r14b,其实这里只用到了toolchains/llvm, readme里面推荐使用的r10c,实际发现生成的代码还是有细微差异的

  • ~./zprofile配置NDK_ROOT环境变量

    export NDK_ROOT=/Users/xyf/Documents/project/android-ndk-r14b 
    PATH=$NDK_ROOT:$QTDIR/bin:$PATH
    
  • PYTHON_BIN通过where python找到Python的目录,PYTHON_BIN指向Python的解释器

  • 安装pip包管理器,这样才能安装python的模块

    sudo python -m ensurepip --upgrade 
    pip --version
    

    如果没有pip,或者安装不上的情况,可以从源码安装,下载源码后,执行:

    python setup.py install
    
    
  • 安装py-yaml、Cheetah

    sudo pip install PyYAML==3.11
    sudo pip install Cheetah==2.4.4
    

cocos2d-x/tools/tolua目录下执行:

python genbindings.py

一切正常的话就会顺利生成binding文件

其实整个环境配置说明,在readme中有详细的介绍。

windows

  • setuptools下载解压,执行python setup.py install
  • pip下载解压,执行python setup.py install image.png
  • python/Scripts目录下执行pip命令,否则你需要将pip配置到环境变量

安装包的时候,会报错始终安不上

Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '_ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol'),)': /simple/pip/
C:\Python27\lib\site-packages\pip-18.1-py2.7.egg\pip\_vendor\urllib3\util\ssl_.py:160: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecurePlatformWarning

源的问题,直接使用国内源

> pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
Writing to C:\Users\Administrator\AppData\Roaming\pip\pip.ini
> pip config set install.trusted-host mirrors.aliyun.com
Writing to C:\Users\Administrator\AppData\Roaming\pip\pip.ini

再执行安装包,一切正常

image.png

将Python脚本打包为可执行程序

可以将python脚本打包为可执行程序,这样就不用再反复配置环境了,发给别人也能直接使用,python2.7对应的pyinstaller

pip install pyinstaller==3.6

cd python-script-dir/
pyinstaller xxx.py

打包成功后,会在默认目录(dist)生成可执行程序,build目录是中间文件