conda skeleton에서 "No source urls found for XXXXX"오류가 발생했습니다.
배경.
PyPI에 등록된 사제 포장mylibrary
을 conda 포장으로 바꾸어 conda에 로그인하고 싶습니다.
아래 사이트를 참고하여 콘다 포장을 제작해 보았습니다.
https://qiita.com/iisaka51/items/5828a50744be209705d0
컨디션
당면한 문제 conda skeleton
명령을 실행한 후 다음 오류가 발생했습니다.$ conda skeleton pypi mylibrary
Leaving build/test directories:
Work:
/home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/work
Test:
/home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/test_tmp
Leaving build/test environments:
Test:
source activate /home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho
Build:
source activate /home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/_build_env
Error: No source urls found for mylibrary
소스 파일의 URLmylibrary
이 없다고 합니다.
잘못된 원인을 조사하다
conda-build의 출처 확인
"No source urls found for"에서 Google을 검색한 결과conda_build
관련 소스가 발견되었습니다.
conda-build/conda_build/skeletons/pypi.py data = pypi_data['info'] if not is_url else {}
# PyPI will typically have several downloads (source, wheels) for one
# package/version.
urls = [url for url in pypi_data['releases'][version]] if not is_url else [package]
if not is_url and not all_urls:
# Try to find source urls
urls = [url for url in urls if url['packagetype'] == 'sdist']
if not urls:
# Try harder for a download location
if data.get('download_url'):
urls = [defaultdict(str, {'url': data['download_url']})]
if not urls[0]['url']:
# The package doesn't have a url, or maybe it only has a wheel.
sys.exit("Error: Could not build recipe for %s. "
"Could not find any valid urls." % package)
U = parse_url(urls[0]['url'])
if not U.path:
sys.exit("Error: Could not parse url for %s: %s" %
(package, U))
urls[0]['filename'] = U.path.rsplit('/')[-1]
fragment = U.fragment or ''
digest = fragment.split("=")
else:
sys.exit("Error: No source urls found for %s" % package)
PyPI에서 얻은 정보가 download_url
없으면'Nosource urls found for'오류가 발생합니다.
download_조사 url
파이썬의 공식 문서download_url
에는'패키지를 다운로드할 수 있는 곳'이 기재돼 있다.
https://docs.python.org/ja/3/distutils/setupscript.html#additional-meta-data
사제 포장mylibrary
의setup.py
에는 지정download_url
이 없다.
참조된 웹 사이트에서 집행conda skeleton pypi autopepa8
.하지만autopepa8
의setup.py
도download_url
없다.
PyPI의 Download file 참조
PyPI에서 autopepa8
의"Download file"를 보고 등록tar.gz
했습니다.
내가 만든 mylibrary
에는 whl
서류가 있지만 tar.gz
가 없다.
PyPI에 업로드되지 않았기 때문인 것 같습니다.
까닭
PyPI에 업로드된 경우에만tar.gz
실행되고 그렇지 않음python setup.py bdist_wheel
때문입니다.
해결책
PyPI를 등록할 때 python setup.py sdist
를 실행하여 sdist와 wheel을 PyPI에 업로드합니다.
이 상태에서 실행python setup.py sdist bdist_wheel
하면 오류가 사라집니다conda skeleton
.
사이트 축소판 그림
$ conda skeleton pypi mylibrary
Leaving build/test directories:
Work:
/home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/work
Test:
/home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/test_tmp
Leaving build/test environments:
Test:
source activate /home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho
Build:
source activate /home/vagrant/miniconda3/conda-bld/skeleton_1560081893777/_build_env
Error: No source urls found for mylibrary
conda-build의 출처 확인
"No source urls found for"에서 Google을 검색한 결과
conda_build
관련 소스가 발견되었습니다.conda-build/conda_build/skeletons/pypi.py
data = pypi_data['info'] if not is_url else {}
# PyPI will typically have several downloads (source, wheels) for one
# package/version.
urls = [url for url in pypi_data['releases'][version]] if not is_url else [package]
if not is_url and not all_urls:
# Try to find source urls
urls = [url for url in urls if url['packagetype'] == 'sdist']
if not urls:
# Try harder for a download location
if data.get('download_url'):
urls = [defaultdict(str, {'url': data['download_url']})]
if not urls[0]['url']:
# The package doesn't have a url, or maybe it only has a wheel.
sys.exit("Error: Could not build recipe for %s. "
"Could not find any valid urls." % package)
U = parse_url(urls[0]['url'])
if not U.path:
sys.exit("Error: Could not parse url for %s: %s" %
(package, U))
urls[0]['filename'] = U.path.rsplit('/')[-1]
fragment = U.fragment or ''
digest = fragment.split("=")
else:
sys.exit("Error: No source urls found for %s" % package)
PyPI에서 얻은 정보가 download_url
없으면'Nosource urls found for'오류가 발생합니다.download_조사 url
파이썬의 공식 문서
download_url
에는'패키지를 다운로드할 수 있는 곳'이 기재돼 있다.https://docs.python.org/ja/3/distutils/setupscript.html#additional-meta-data
사제 포장
mylibrary
의setup.py
에는 지정download_url
이 없다.참조된 웹 사이트에서 집행
conda skeleton pypi autopepa8
.하지만autopepa8
의setup.py
도download_url
없다.PyPI의 Download file 참조
PyPI에서
autopepa8
의"Download file"를 보고 등록tar.gz
했습니다.내가 만든
mylibrary
에는 whl
서류가 있지만 tar.gz
가 없다.PyPI에 업로드되지 않았기 때문인 것 같습니다.
까닭
PyPI에 업로드된 경우에만tar.gz
실행되고 그렇지 않음python setup.py bdist_wheel
때문입니다.
해결책
PyPI를 등록할 때 python setup.py sdist
를 실행하여 sdist와 wheel을 PyPI에 업로드합니다.
이 상태에서 실행python setup.py sdist bdist_wheel
하면 오류가 사라집니다conda skeleton
.
사이트 축소판 그림
PyPI를 등록할 때
python setup.py sdist
를 실행하여 sdist와 wheel을 PyPI에 업로드합니다.이 상태에서 실행
python setup.py sdist bdist_wheel
하면 오류가 사라집니다conda skeleton
.사이트 축소판 그림
Reference
이 문제에 관하여(conda skeleton에서 "No source urls found for XXXXX"오류가 발생했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuji38kwmt/items/7f2aba3206630cebe6de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)