在 Python3/Django1.8 网络应用程序中使用 Python2 库

Posted

技术标签:

【中文标题】在 Python3/Django1.8 网络应用程序中使用 Python2 库【英文标题】:using Python2 library in Python3/Django1.8 web app 【发布时间】:2016-11-15 02:53:31 【问题描述】:

我正在尝试使用this SDK/API,但它是为 Python2 构建的,并且我在 Django 1.8.8 / Python 3.5.1 站点中工作。我确信我可以从 Python3-Django 触发 Python2 脚本,但是将安全的、网络提交的信息传递给它是否安全?有没有更好的方法来完全处理这个问题?

我在 StackExchange 中找不到任何关于 SecureSubmit 的信息,尽管它看起来很大,而且我根本找不到关于使用混合 Python(Python2 + Python3)库的内容...

Heartland 已经存在了一段时间,他们的 SecureSubmit 服务具有适用于多种语言(php、.Net、Java、Ruby、Python 和 nodeJS)的 API。如果将其中一个与我的 Django 站点集成而不是启动 Python2 脚本更好,请告诉我! (我也联系过 Heartland,但谁知道我什么时候会收到回复……)

谢谢!

【问题讨论】:

我会联系开发人员并询问他们是否正在移植到 python 3,然后再在这里询问。 查看源代码似乎移植到python 3可能是一项简单的任务,没有什么复杂的。 很高兴听到这个消息!开发人员确实做出了回应,他们说他们没有移植到 Python 3 的计划。我正在使用future 自己移植它,但我遇到了一个严重的问题:有问题的包有一个自定义 enums.py 模块这与 Python 3 中内置的冲突。Tyring 覆盖它并希望这不会破坏任何东西...... 你在说:heartland-python/securesubmit/infrastructure/enums.py 这看起来像是一个使用枚举的实现:'docs.python.org/3/library/enum.html' ....你得到的错误是什么? ?我会尝试在 python 3 中运行它,然后从那里开始。 是的。如果枚举有成员(他们就是这样做的),Python 3 不会让你子类化枚举,所以我只是重新创建了一些子类枚举作为新枚举。似乎正在工作...... 【参考方案1】:

我认为你抓住了荨麻很好,我相信所有使用你的作品的人都会欣赏使用 python 3 的能力。我很高兴能启发你去尝试。

【讨论】:

以上是关于在 Python3/Django1.8 网络应用程序中使用 Python2 库的主要内容,如果未能解决你的问题,请参考以下文章

Django 迁移错误:列不存在

Swoole系列4.2协程应用与容器

PID在编程中怎么应用啊?

Android跨进程通信

Gevent模块,协程应用

android中的跨进程是啥意思