用cython编译能在python3.4Django应用上运行吗?或者不需要付出巨大的努力就能运行?
这个关于保护python代码的问题的答案https://stackoverflow.com/a/7347168/805141促使我提出这个问题。
以前也有人提出过类似的问题,但与提高性能有关:Using Cython with Django. Does it make sense?
用cython编译能在python3.4Django应用上运行吗?或者不需要付出巨大的努力就能运行?
这个关于保护python代码的问题的答案https://stackoverflow.com/a/7347168/805141促使我提出这个问题。
以前也有人提出过类似的问题,但与提高性能有关:Using Cython with Django. Does it make sense?
3条答案
按热度按时间vojdkbi01#
是的,我们已经做到了。但它的点持续的痛苦。
我们制作了一个商业产品,安装在客户端来管理他们的Genesys电力联络中心。应用程序的核心是用Django编写的,我们希望保护(限制)代码免受检查。
运行在原生python中有速度上的提升,但并不是很大的差别,提升程度取决于任务的类型,有时高达30%,有时很小。
我们经常会遇到这样的问题,有些东西在Python中可以工作,但在Cython中却不行。除非你有一个很好的动机,否则我不会推荐这条路。
当前版本运行在Python 3.5和Django 1.11上
bzzcjhmw2#
我知道现在回答已经太晚了。尽管它可能会有帮助。我已经在项目主目录中创建了一个www.example.com文件。setup.py file in the project home directory.
扫描您的应用程序目录并将文件添加到fileSet您想要编译的任何内容。www.example.com、www.example.com和www.example.com仅为示例。 file1.py , file2.py and file3.py are just examples only.
最后,运行www.example.com文件,如下所示setup.py file as below
然后Cython统计编译每个文件,并使其成为. so文件。 应用程序1/www.example.com应用程序2/www.example.com应用程序3/www.example.com file1.so app2/ file2.so app3/ file3.so
这些文件是共享目标文件,您无法手动解释。请删除所有. py和. pyc文件。然后将项目作为
或者你可以把这些二进制文件放在你的生产服务器上。我试过NGINX,uWSGI。
祝你好运。
ds97pgxw3#
请 checkout 使用Cython编译django项目的djcompiler包。https://github.com/abdoohossamm/djcompiler
运行
pip install djcompiler
然后转到项目目录并运行
djcompiler buildfile
在. djcompiler文件中编辑您的配置。