Virtualenv&&Cython

前几天入了一下cython的坑,发现其实已经算第二次了,第一次应该是swig的坑.
Cython是一个Python的C/C++的扩展库,然后就可以用Python跑C++的代码了。

VirtualEnv

首先是Virtualenv是一个虚拟的Python环境,其实它比原生的python环境复杂,但是它的特点是无论你手多么残,都只是影响虚拟环境, 还有避免你的Python环境装过多的包,已经移植方便。

virtualenv venv
它会在当前的文件夹下创建一个venv的文件夹,里面有三个子文件夹,Scripts,Include,Lib


其中Scripts会有一些脚本,激活虚拟环境的代码就在里面,Include里面有Python的安装包的路径,一般在site-packages里面

在windows下面,通过
venv\Scripts\activate
来激活环境,其实就是运行相应的bat脚本

Cython

这个扩展库可以由python自动生成C++代码然后再由C++生成C++的扩展模块库。所以的顺序是先由
pyx,也就是python要转化为C++的代码,用例子是

这个中文博客的蛮适合入门的 Cython学习

# hello.pyx
def say_hello():
   print "Hello World!"

然后我们通过cythonize来把它变成c++的代码

下面的代码集成了几步。

from distutils.core import setup
from Cython.Build import cythonize
setup(name = 'Hello world app', ext_modules = cythonize("hello.pyx"))

通过
python setup.py build
我们会发现文件夹下面多了一个 文件


打开以后代码有两千行,开头说明了 generated by cython

然后我们通过
python setup.py install把它加进我们的库里面,你会发现site-packages里面多了两个文件


pyd其实就是dll文件,它能被python调用。
然后我们能够顺利地把它当模块导入了。其中egg-info文件我们打开以后 是一些信息,文件如其名。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容