我正在学习在python中创建一个包。这是包的结构
funniest
-- funniest
-- __init__.py
-- setup.py
初始化的.py
def joke():
return (u'Wenn ist das Nunst\u00fcck git und Slotermeyer? Ja! ... '
u'Beiherhund das Oder die Flipperwaldt gersput.')
setup.py
from setuptools import setup
setup(name='funniest',
version='0.1',
description='The funniest joke in the world',
url='http://github.com/storborg/funniest',
author='Flying Circus',
author_email='flyingcircus@example.com',
license='EXXX',
packages=['funniest'],
zip_safe=False)
然后我在venv做了
source bin/activate
python setup.py develop
python setup.py install
然后我想在venv
中的本地python脚本中使用该包from funniest import * // I get error here. ImportError: No module named funniest
但无法在脚本中导入包。所以我去检查了网站包,我看到 funniest.egg-link ,所有导入都失败了。任何人都可以解释为什么它不在网站包中或如何真正使“最有趣”的包在本地使用?
更新:我也尝试了以下内容,但我的包未在输出中列出
yolk -l
答案 0 :(得分:1)
我使用与项目相同的结构创建了一个项目:
python setup.py develop
...Processing dependencies for funniest==0.1
...Finished processing dependencies for funniest==0.1
我仔细检查了网站包中的funniest.egg-link
,它指向projects/funniest
,看起来不错。
然后我做了一个pip list
,最有趣的是在列表中
funniest (0.1)
然后我使用相同的python环境启动python
,它完全按预期工作:
(venv) \projects\funniest>python
>>> from funniest import joke
>>> joke.joke()
hi
我在projects / funniest / funniest下用joke()函数创建了joke.py。
请仔细检查您是否使用相同的python环境。希望能帮助到你。