访问PyPI存储库中的Python模块函数

时间:2017-04-03 19:04:55

标签: python python-3.x pypi

我刚刚将我的第一个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'],
)

非常感谢任何向正确方向的推动。

0 个答案:

没有答案