【发布时间】:2014-10-25 14:43:37
【问题描述】:
我正在尝试使用“conda build fibtestpackage”命令构建一个包。
“fibtestpackage”是使用 Cython 构建的,因此在 .sh 文件中我有命令:
python setup.py build_ext --inplace
即使构建成功结束,输出也符合预期:
正在获取包... fibtestpackage-1.0.0 100% |###############################|时间:0:00:00 3.03 MB/s
正在提取包... [完成] |##################################### ############| 100%
链接包... [完成]|############################################## ####| 100%
我在 YAML 文件中的一项测试失败了。我唯一的测试是这样的:
test:
# Python imports
imports:
- fibtestpackage
#- numpy
#- samplers
因此,这是一个导入错误,
ImportError: 没有名为 fibtestpackage 的模块
我对为什么会出现 importerror 的第一个猜测是因为构建生成的 .SO、.C 和 .PYX 文件(以及库的其他文件)没有放入 anaconda/lib/python2 中。 7/site-packages/ 其他模块所在的文件夹。我是否需要在 shell 文件中指定这一点,还是应该由“python setup.py build_ext --inplace”命令覆盖?
我的第二个猜测是发行版中有两个不同版本的 conda(更新后),
1) Python 2.7.8 |Anaconda 2.1.0(64 位)| (默认,2014 年 8 月 21 日,18:22:21)
2) Python 2.7.8 |Continuum Analytics, Inc.| (默认,2014 年 8 月 21 日,18:22:21)
这会导致问题吗?也许构建环境将库安装在错误的环境中?
提前感谢您的帮助!
【问题讨论】:
-
经过一番研究,我在 .sh 文件中发现如果我将构建生成的 fibstestpackage.so 文件移动(使用 cp 命令)到 ~/anaconda/lib/python2.7/site -packages/ 文件夹,它似乎工作。这是最好的解决方案吗???
标签: python conda cython conda-build