为什么我自己创建的包不在site-packages中?

时间:2016-05-06 00:46:56

标签: python packages

我正在学习在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

1 个答案:

答案 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环境。希望能帮助到你。