setup.py
# coding: utf-8from setuptools import setupsetup(name = "Test",py_modules = ['my_test', 'great_class'],entry_points = {'console_scripts': ['Test = my_test:fun']},data_files = ['_great_class.so'] # 指定其他的一些文件(如配置文件))setup(name = "Test2",py_modules = ['my_test2'],entry_points = {'console_scripts': ['Test2 = my_test2:fun']})
great_class.h
#ifndef GREAT_CLASS#define GREAT_CLASSclass Great {private:int s;public:void setWall(int _s) {s = _s;}int getWall() {return s;}};#endif //GREAT_CLASS
great_class.i
%module great_class%{#include "great_class.h"%}%include "great_class.h"
通过swig生成_great_class.so文件
mytest.py
#!/usr/bin/env pythonimport great_classdef fun():c = great_class.Great()c.setWall(5)print c.getWall()if __name__ == '__main__':fun()
mytest2.py
#!/usr/bin/env pythondef fun0(a):print "wo jiu shi shi", adef fun():a = "miao"fun0(a)if __name__ == '__main__':fun()
执行命令: python setup.py install
Python 库打包分发(setup.py 编写)简易指南://04/29/setup-dot-py/
Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法:/python-script-error-attributeerror-module-object-has-no-attribute-solve-method.html
查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件
问题解决方法:
1. 命名py脚本时,不要与python预留字,模块名等相同
2.删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可