我刚刚将我的第一个Python模块上传到PyPI,它似乎正在运行 - 但并不像我原先想象的那样。 myProject的本地目录结构是:
myProject/
setup.py
setup.cgf
LICENSE.txt
README.md
myProject/
__init__.py
myFunctions.py
__init__.py
文件为空(虽然我在包含__all__ = ['myFunctions']
时也尝试了它,但它没什么区别)。
myFunctions.py
文件定义了几个函数和辅助函数,例如:
def myFunc1():
print("Hello world!")
def myFunc2():
print("It is an ex parrot.")
我创建了一个轮子,用PyPI注册了项目并上传了项目。到目前为止,非常好。
我曾预料到我可以使用import myProject
将项目导入Python,然后使用myProject.myFunctions.myFunc2()
访问各个函数。但是,似乎没有办法访问各个功能,我已经尝试了所有我能想到的变化。
但是,如果我使用,我可以评估功能:
from myProject import myFunctions
myFunctions.myFunc2()
所以,至少我知道所有相关代码都已上传。很明显,我错过了一些重要的内容,但我还没有找到任何关于如何上传到PyPI的教程中的解决方案的参考。
myFunctions.py
文件是否需要具有特殊结构? __init__.py
的内容是否需要更改?或者我需要以某种方式更改我的setup.py文件? setup.py的内容如下:
from setuptools import setup
from setuptools import find_packages
import pypandoc
# Haven't yet downloaded pandoc
try:
long_description = pypandoc.convert('README.md', 'rst')
except (IOError, ImportError):
long_description = ''
setup(
name = 'myProject',
packages = find_packages(),
version = '0.1.1',
description = 'A library of Python code',
long_description = long_description,
author = 'A.N. Other',
author_email = 'a.n.other@xyz.com',
url = 'https://github.com/username/myProject', # use the URL to the github repo
download_url = 'https://github.com/username/myProject/archive/0.1.1.tar.gz',
license = 'MIT',
keywords = ['keywords'],
classifiers = [# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 3 - Alpha',
# Indicate who your project is intended for
'Intended Audience :: Science/Research',
'Topic :: Scientific/Engineering :: Medical Science Apps.',
# Pick your license as you wish (should match "license" above)
'License :: OSI Approved :: MIT License',
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4',
],
install_requires=['pandas>=0.19.2'],
)
非常感谢任何向正确方向的推动。