繁体   English   中英

点安装-e。 与设置.py

[英]pip install -e . vs setup.py

我一直在本地编辑(在 conda 环境中)从 github 存储库https://github.com/GeoStat-Framework/GSTools克隆的包GSTools ,以适应我自己的目的。 该包是用 python (cython) 包裹的 c++。

到目前为止,我已经使用了pip install -e. 在我的本地更改的主包目录中。 但我现在想通过设置环境变量 export GSTOOLS_BUILD_PARALLEL=1来使用他们的OpenMP支持。 然后执行pip install -e. 我在终端中得到了其他东西......

Installing collected packages: gstools
Running setup.py develop for gstools
Successfully installed gstools-1.3.6.dev37

这个问题实际上没有任何改变,因为如果 env 变量在 linux 终端中设置为GSTOOLS_BUILD_PARALLEL=1setup.py (如下所示)应该打印"OpenMP=True" ,如果未设置为 1,则打印其他内容。

这是setup.py

# -*- coding: utf-8 -*-
"""GSTools: A geostatistical toolbox."""
import os
​
import numpy as np
from Cython.Build import cythonize
from extension_helpers import add_openmp_flags_if_available
from setuptools import Extension, setup
​
# cython extensions
CY_MODULES = [
    Extension(
        name=f"gstools.{ext}",
        sources=[os.path.join("src", "gstools", *ext.split(".")) + ".pyx"],
        include_dirs=[np.get_include()],
        define_macros=[("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")],
    )
    for ext in ["field.summator", "variogram.estimator", "krige.krigesum"]
]
# you can set GSTOOLS_BUILD_PARALLEL=0 or GSTOOLS_BUILD_PARALLEL=1
if int(os.getenv("GSTOOLS_BUILD_PARALLEL", "0")):
    added = [add_openmp_flags_if_available(mod) for mod in CY_MODULES]
    print(f"## GSTools setup: OpenMP used: {any(added)}")
else:
    print("## GSTools setup: OpenMP not wanted by the user.")
​
# setup - do not include package data to ignore .pyx files in wheels
setup(ext_modules=cythonize(CY_MODULES), include_package_data=False)

我试过只是python setup.py install但这给了

UNKNOWN 0.0.0 is already the active version in easy-install.pth

Installed /global/u1/b/benabou/.conda/envs/healpy_conda_gstools_dev/lib/python3.8/site-packages/UNKNOWN-0.0.0-py3.8-linux-x86_64.egg
Processing dependencies for UNKNOWN==0.0.0
Finished processing dependencies for UNKNOWN==0.0.0

import gstools

不再正常工作。

那么,如何安装支持 OpenMP 的软件包的编辑版本呢?

GSTools 的开发者在这里。

我猜你没有看到打印的消息,因为 pip 正在抑制设置的输出。 所以你可以尝试使 pip 冗长:

GSTOOLS_BUILD_PARALLEL=1 pip install -v -e .

顺便说一句,我们总是对改进感兴趣。 那么也许您愿意在 GSTools 上分享您的编辑? :-)

干杯,塞巴斯蒂安

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM