上下文
我正在创建名为countries_utils
的第一个软件包,该软件包可在https://pypi.org/project/countries-utils上使用。
我已阅读以下教程:
- 打包Python项目 https://packaging.python.org/tutorials/packaging-projects/
- 管理应用程序依赖项https://packaging.python.org/tutorials/managing-dependencies/#managing-dependencies
- 打包和分发项目https://packaging.python.org/guides/distributing-packages-using-setuptools/#distributing-packages
库countries_utils
的代码
该库的源代码可在bitbucket上获得:
问题
- 我运行命令
pip install countries-utils
- 我下载了该库的最新版本
- 我运行
python
命令 - 我使用
import countries_utils
导入库
- 我收到错误消息:
ModuleNotFoundError: No module named 'countries_utils'
问题:我想念什么?
pip list
命令的结果
pip list
Package Version
--------------------------------------------- -----------
...
contextlib2 0.5.5
countries-utils 1.0.13
country-list 0.1.4
cryptography 2.7
...
错误
这是在python控制台中执行import countries_utils
的结果:
> python
Python 3.7.4 (default,Aug 9 2019,18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda,Inc. on win32
Type "help","copyright","credits" or "license" for more information.
>>> import countries_utils
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
ModuleNotFoundError: No module named 'countries_utils'
setup.py文件(工作版本)
# -*- coding: utf-8 -*-
# Copyright (c) ALT-F1 SPRL,Abdelkrim Boujraf. All rights reserved.
# Licensed under the EUPL License,Version 1.2.
# See LICENSE in the project root for license information.
from os import path
import json
import setuptools
with open('README.md','r') as fh:
long_description = fh.read()
here = path.abspath(path.dirname(__file__))
root = path.dirname(here)
package_json = path.join(here,'package.json')
# a workaround when installing locally from git repository with pip install -e .
if not path.isfile(package_json):
package_json = path.join(root,'package.json')
# version number and all other params from package.json
with open(package_json,encoding='utf-8') as f:
package = json.load(f)
setuptools.setup(
name=package['name'],version=package['version'],author=package['author']['name'],author_email=package['author']['email'],description=package['description'],license=package['license'],long_description=long_description,long_description_content_type='text/markdown',url=package['repository']['url'],install_requires=[
'pycountry','pandas','country-list'
],packages=[package['name']],keywords=package['keywords'],# Find the list of classifiers : https://pypi.org/classifiers/
classifiers=[
'Development Status :: 5 - Production/Stable','Intended Audience :: Developers','License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)','Operating System :: OS Independent','Programming Language :: Python :: 3.7','Topic :: Software Development :: libraries :: Python Modules',],python_requires='>=3.5',project_urls={ # Optional
'Bug Reports': 'https://bitbucket.org/altf1be/countries-utils/issues?status=new&status=open','Company behind the library': 'http://www.alt-f1.be','Source': 'https://bitbucket.org/altf1be/countries-utils',},)