gpt4 book ai didi

python - Pandas开发流程: conda and building C extensions

转载 作者:行者123 更新时间:2023-12-01 04:33:36 25 4
gpt4 key购买 nike

我目前正在为 Pandas 核心编写一些代码,我想知道我的工作流程是否正确。

当 Travis CI 实例针对不同版本的 Python 进行测试时,我将 conda 设置为在本地不同版本之间切换,以便我可以查看测试套件是否通过或失败。

但是每次我在环境之间切换时,我都会得到:

ERROR: Failure: ImportError (C extension: libpython2.6.so.1.0: cannot open shared object file: No such file or directory not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.)

当我执行python setup.py build_ext --inplace时,我得到:

/home/some_user/anaconda/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg/setuptools/dist.py:294: UserWarning: The version specified ('0.16.2-134-g84d6eba') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
running build_ext
skipping 'pandas/index.c' Cython extension (up-to-date)
skipping 'pandas/src/period.c' Cython extension (up-to-date)
skipping 'pandas/algos.c' Cython extension (up-to-date)
skipping 'pandas/lib.c' Cython extension (up-to-date)
skipping 'pandas/tslib.c' Cython extension (up-to-date)
skipping 'pandas/parser.c' Cython extension (up-to-date)
skipping 'pandas/hashtable.c' Cython extension (up-to-date)
skipping 'pandas/src/sparse.c' Cython extension (up-to-date)
skipping 'pandas/src/testing.c' Cython extension (up-to-date)
skipping 'pandas/msgpack.cpp' Cython extension (up-to-date)

所以,根据 @Jeff 对 this question 的评论,我使用以下方法重建扩展:

python setup.py build_ext --inplace --force

一切都运转良好。但是构建需要几分钟的时间才能运行,感觉就像我做错了什么。 (它当然没有提到必须在 Contributing to Pandas 指南中强制重建。

所以我做错了什么,还是这就是它的工作方式?

最佳答案

您不能在同一空间中构建多个版本。您需要执行以下操作之一:

  • 将克隆的目录放入 conda 目录本身中。例如。如果你有pandas2.6,那么你可以(如果你安装了miniconda/anaconda,你的路径可能会有所不同),到~/minicona/envs/pandas2.6然后克隆pandaspython setup.py build_ext --inplace 并在本地访问

  • 使用python setup.py build。如果您的克隆目录是~/pandas。这会将不同版本的构建放在 ~/pandas/builds/..... 中。这样做的缺点是您实际上必须指定路径才能运行它们,例如nosetests ~/pandas/builds/....../pandas/tests/test_series.py 例如。此外,每次您想要进行更改时都需要重新构建(但由于 c 扩展已经构建,这通常非常快)。

关于python - Pandas开发流程: conda and building C extensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com