Cómo instalar el paquete de instalación en forma de carpeta que contiene archivos de origen en lugar de .egg (zip_safe en setuptools está establecido en False)

Referencia principal

https://stackoverflow.com/questions/33014356/how-to-make-python-setup-py-install-install-source-instead-of-egg-file

Descripción

Hay muchas cosas relacionadas con la depuración del código fuente. Cuando se trata de archivos instalados como .egg, no es muy fácil depurarlos. Espero que después de instalar el paquete de archivos, todos los archivos fuente se descompriman y coloquen en el carpeta.

Tome esta actualización de gluoncv al último paquete de instalación como ejemplo, por ejemplo, descargue la última versión de gluoncv aquí,

https://github.com/dmlc/gluon-cv

Después de la descompresión, cambie al directorio y use el comando python setup.py install para instalar (mx36gpu es mi entorno mxnet en anaconda)

(mx36gpu) D: \ mXNet \ gluon-cv-master> instalación de python setup.py

Finalmente, se encontró que apareció un archivo gluoncv-0.8.0-py3.6.egg en la carpeta D: \ Anaconda3 \ envs \ mx36gpu \ Lib \ site-packages en lugar de una carpeta. Entonces, cuando depuro el código fuente, se ve muy desagradable.

De acuerdo con las instrucciones del sitio web oficial de setuptools (consulte https://setuptools.readthedocs.io/en/latest/setuptools.html#setting-the-zip-safe-flag ), debe cambiar zip_safe a False .

El contenido del archivo setup.py modificado es el siguiente,

#!/usr/bin/env python
import io
import os
import re
import sys

import numpy as np

try:
    from Cython.Build import cythonize
except ImportError:
    cythonize = None
from setuptools import setup, find_packages, Extension

with_cython = False
if '--with-cython' in sys.argv:
    if not cythonize:
        print("Cython not found, please run `pip install Cython`")
        exit(1)
    with_cython = True
    sys.argv.remove('--with-cython')


def read(*names, **kwargs):
    with io.open(
            os.path.join(os.path.dirname(__file__), *names),
            encoding=kwargs.get("encoding", "utf8")
    ) as fp:
        return fp.read()


def find_version(*file_paths):
    version_file = read(*file_paths)
    version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
                              version_file, re.M)
    if version_match:
        return version_match.group(1)
    raise RuntimeError("Unable to find version string.")


try:
    import pypandoc

    long_description = pypandoc.convert('README.md', 'rst')
except(IOError, ImportError):
    long_description = open('README.md').read()

VERSION = find_version('gluoncv', '__init__.py')

requirements = [
    'numpy',
    'tqdm',
    'requests',
    # 'mxnet',
    'matplotlib',
    'portalocker',
    'Pillow',
    'scipy',
]
if with_cython:
    _NP_INCLUDE_DIRS = np.get_include()

    # Extension modules
    ext_modules = cythonize([
        Extension(
            name='gluoncv.nn.cython_bbox',
            sources=['gluoncv/nn/cython_bbox.pyx'],
            extra_compile_args=['-Wno-cpp', '-O3'],
            include_dirs=[_NP_INCLUDE_DIRS]),
        Extension(
            name='gluoncv.model_zoo.rcnn.rpn.cython_rpn_target',
            sources=['gluoncv/model_zoo/rcnn/rpn/cython_rpn_target.pyx'],
            extra_compile_args=['-Wno-cpp', '-O3'],
            include_dirs=[_NP_INCLUDE_DIRS]),
    ])
else:
    ext_modules = []

setup(
    # Metadata
    name='gluoncv',
    version=VERSION,
    author='Gluon CV Toolkit Contributors',
    url='https://github.com/dmlc/gluon-cv',
    description='MXNet Gluon CV Toolkit',
    long_description=long_description,
    license='Apache-2.0',

    # Package info
    packages=find_packages(exclude=('docs', 'tests', 'scripts')),
    zip_safe=False,
    include_package_data=True,
    install_requires=requirements,
    ext_modules=ext_modules
)

Y luego ejecutar

(mx36gpu) D: \ mXNet \ gluon-cv-master> instalación de python setup.py

En la carpeta de anaconda, puede encontrar la carpeta descomprimida de gluoncv-0.8.0-py3.6.egg.

Supongo que te gusta

Origin blog.csdn.net/tanmx219/article/details/107288708
Recomendado
Clasificación