构建python/cython项目的最佳方法是什么,以便我可以对驻留在.pyx文件中的代码进行单元测试?是否有可能对此代码进行单元测试或重构是否允许我以另一种方式实现此目的?
我是新手,cython但有Python TDD,嘲笑等经验.我也知道,对某些python代码库进行cython 化的决定可能是一个不成熟的优化决策.我刚刚加入了一个新的团队,因此我正在开发一个现有的代码库.我想要了解最佳实践.
同样在PyCharm中,用.pyx文件编写的模块在编辑器中显示为未解析的引用 - 我刚读过pyximport但我不确定PyCharm是否设置正确cython(我有最新的专业版).
我知道cython用户指南,但我找不到测试的建议.我也知道pycharm的设置指南,但这表明cython支持是开箱即用的,这似乎与我的经历相矛盾.
我已经阅读了Cython调试,提出了一个断点,并且https://groups.google.com/forum/#!topic/apam-python-users/6rsRwcCAms4并想知道在调试从中调用的cython代码时最佳工作流程是什么python代码?
理想情况下,我想在从我的IDE(pycharm)启动的python调试会话期间进入.pyx文件,但似乎这是不可能的.当pyx文件被cython化以便调试器可以介入时,是不是可以编译调试信息?
如果无法实现,除了不使用cython之外还有哪些替代方案?
由于这个问题专门询问如何进入cython代码,虽然它类似于Cython和Python项目测试驱动开发和.pyx文件结构建议,但它不一样.
我已经按照pycharm 文档来设置 IDE 来解析导入。但是,似乎每个包含 *.py 文件的文件夹都需要明确添加为“源根目录”,以便 IDE 解析所有引用。这可以从根文件夹递归完成吗?
这是让 IDE 解析所有代码库引用的正确方法,还是我没有正确设置我的项目结构?
我已经按照其他方法来解决 IDE 中的引用here和here,但无济于事。如果我手动将每个文件夹添加为“源根目录”,IDE 似乎只会解决它们。如果没有递归功能,大型代码库在设置 IDE 时会很费力!
在编译具有Eigen和EIGEN_USE_MKL_ALL标志的项目时遇到这些警告的任何人?我按照这里的说明:http: //eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html.这只发生在我身上#include <Eigen/Eigenvalues>
编译日志示例:
eigen3.2.1\eigen\src/Eigenvalues/RealSchur_MKL.h(76):警告C4244:'初始化':从'__int64'转换为'int',可能丢失数据eigen3.2.1\eigen\src/Eigenvalues/ComplexSchur_MKL. h(87):警告C4244:'初始化':从'__int64'转换为'int',可能丢失数据eigen3.2.1\eigen\src/Eigenvalues/SelfAdjointEigenSolver_MKL.h(80):警告C4244:'初始化':从'__int64'转换为'int',可能会丢失数据
我知道这些警告意味着什么,但要解决它们,我需要更改库代码.如果没有压制这些警告,你有什么建议(以防我不知何故错过了什么)?
pycharm ×3
python ×3
cython ×2
python-2.7 ×2
c++ ×1
debugging ×1
eigen ×1
intel-mkl ×1
tdd ×1
unit-testing ×1