为收集到的包裹构建轮子非常缓慢并且需要内存。我可以跳过吗?

tev*_*ang 6 python installation pip setup.py

我的项目有这个 setup.py 文件,我正在使用 Python3.7 运行 Anaconda3:

from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand


def parse_requirements(requirements):
    with open(requirements) as f:
        return [l.strip('\n') for l in f if l.strip('\n') and not l.startswith('#')]


class Install(InstallCommand):
    """ Customized setuptools install command which uses pip. """

    def run(self, *args, **kwargs):
        from pip._internal import main as _main
        _main(['install', '.'])
        InstallCommand.run(self, *args, **kwargs)


setup(
    name="NGF",
    author="Ties van Rozendaal",
    author_email="git@tivaro.nl",
    maintainer="Thomas Evangelidis",
    maintainer_email="tevang3@gmail.com",
    description="\n*** An implementation of Convolutional Networks on Graphs for Learning Molecular Fingerprints in Keras 2.x. ***\n",
    long_description="Read the README.md file.",
    url="https://github.com/iwatobipen/keras-neural-graph-fingerprint",
    license="MIT.",
    version="1.0",
    platforms="Unix",
    dependency_links=[],
    cmdclass={
        'install': Install,
    },
    packages=find_packages(where='.', exclude=()),
    # package_dir={'':'dev'},
    install_requires=parse_requirements('requirements.txt')
)
Run Code Online (Sandbox Code Playgroud)

“requirements.txt”文件的内容是:

pip==19.0.3
tensorflow==1.13.1
setuptools==40.8.0
Keras==2.2.4
numpy==1.16.2
Run Code Online (Sandbox Code Playgroud)

当我做:

pip install <project dir>/
Run Code Online (Sandbox Code Playgroud)

Python 构建了一些巨大的轮子,这些轮子需要很长时间才能完成并最终消耗所有内存!我不知道它到底做了什么,也许它为 tensorflow 和 Keras 构建了轮子,它们是带有 Python 包装器的 C++ 中的大量包。我想要的只是pip检查是否安装了所需的模块,如果没有,安装它们,然后将我的项目的python文件复制到“~/Anaconda3/lib/python3.7/site-packages/”。很简单!我怎样才能做到这一点?

mar*_*004 0

Install您子类化和覆盖的方式run()是不合适的,并且自然会触发源代码构建。不要这样做;只有这一install_requires行就足够了,setuptools 会处理其他任何事情。