V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
oldbird
V2EX  ›  Python

通过 setup.py 安装库后 site-package 里只有.egg 文件是怎么回事?

  •  
  •   oldbird · 50 天前 · 843 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从 github 下载 master.zip 包,解压后通过 python setup.py install 安装后,发现 site-package 里只有.egg 文件,而 setup.py 同目录下生成了 build 、dist 、.egg-info 目录,在 IDE 里查看模块 A 源代码,路径是指向.egg\A 的,实际在磁盘上看不到文件 A 。

    现在遇到一个问题,A 模块中有导入模块 B,运行到这里就提示模块 B 不存在,IDE 里也跳不到,但 master 里是有 A.py,B.py 文件的,本来想看看安装后是不是也有这个文件,现在看不到,不知道怎么解决。

    10 条回复    2020-10-16 20:44:50 +08:00
    Osk
        1
    Osk   50 天前 via Android
    暴力方法:把 egg 用解压软件解压了并调整一下目录结构和配置
    文件
    oldbird
        2
    oldbird   50 天前 via Android
    @Osk 解压调整结构后,需要重新压缩为 egg 吗?
    xchaoinfo
        3
    xchaoinfo   50 天前 via Android
    pip install master.zip 试试
    做好的压缩包是不需要解压后,在安装的
    Osk
        4
    Osk   50 天前
    @oldbird 不需要的将你解压后的文件结构调整成类似于 site_packages/package_name/__init__.py 的结构就行.
    不要 site_packages/package_name/xxxx/yyyy/__init__.py 这种
    freakxx
        5
    freakxx   50 天前
    项目名不等于包名。
    注意有没"_"
    freakxx
        6
    freakxx   50 天前
    @Osk #1
    @Osk #4

    这做法大可不必?。。。

    >>> import this
    The Zen of Python, by Tim Peters

    Beautiful is better than ugly.
    Explicit is better than implicit.
    ...
    freakxx
        7
    freakxx   50 天前
    或者直接把 github 地址发出来。
    oldbird
        8
    oldbird   50 天前
    freakxx
        9
    freakxx   50 天前
    @oldbird #8

    看了下包(没环境,没运行,只是看了下 setup 和 sdist ),应该是没问题的

    检查下 log 出错
    - 环境问题
    - 同名覆盖
    oldbird
        10
    oldbird   47 天前
    @freakxx 可以把 master 解压后除 setup.py 外的那个文件夹直接拷贝到 site-packages 目录里用吗?
    很奇怪,b.py 明明存在,在 a.py 里 import b 就是提示不存在。
    不知道怎么解决了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1314 人在线   最高记录 5298   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.