我已将一个简单的包上传到https://testpypi.python.org/pypi。 我已按照以下步骤进行操作,
python setup.py register -r https://testpypi.python.org/pypi
python setup.py sdist upload -r https://testpypi.python.org/pypi
然后将此软件包下载到本地并使用install命令执行setup.py. (包网址https://testpypi.python.org/pypi/printlistonlynew/0.1) 然后成功安装了包。
这是包的结构和代码,
│ setup.py
│
└───listprint
stack.py
__init__.py
stack.py的内容是,
class Xyz:
def __init__(self,):
pass
def printList(self):
print [i for i in range(0,10)]
当我尝试从已安装的软件包导入方法printList时,它会给我错误,
AttributeError: Xyz instance has no attribute 'printList'
这是我试图执行的代码,
from listprint import stack
x=stack.Xyz()
print x
print x.printList()
我在这做错了什么?任何命名空间问题?
答案 0 :(得分:2)
我已经下载了您的文件,并且您有缩进问题。因为您正在混合制表符和空格,所以Python正在考虑将printList
作为 __init__
内的嵌套。
仅限空格。