Referencia principal
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.