[英]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=1
, setup.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.