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

2020-10-13 07:13:14 +08:00
 oldbird

从 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 文件的,本来想看看安装后是不是也有这个文件,现在看不到,不知道怎么解决。

2819 次点击
所在节点    Python
10 条回复
Osk
2020-10-13 08:08:10 +08:00
暴力方法:把 egg 用解压软件解压了并调整一下目录结构和配置
文件
oldbird
2020-10-13 08:16:14 +08:00
@Osk 解压调整结构后,需要重新压缩为 egg 吗?
xchaoinfo
2020-10-13 08:17:54 +08:00
pip install master.zip 试试
做好的压缩包是不需要解压后,在安装的
Osk
2020-10-13 10:07:17 +08:00
@oldbird 不需要的将你解压后的文件结构调整成类似于 site_packages/package_name/__init__.py 的结构就行.
不要 site_packages/package_name/xxxx/yyyy/__init__.py 这种
freakxx
2020-10-13 10:30:32 +08:00
项目名不等于包名。
注意有没"_"
freakxx
2020-10-13 10:32:54 +08:00
@Osk #1
@Osk #4

这做法大可不必?。。。

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

Beautiful is better than ugly.
Explicit is better than implicit.
...
freakxx
2020-10-13 10:35:13 +08:00
或者直接把 github 地址发出来。
oldbird
2020-10-13 10:40:59 +08:00
freakxx
2020-10-13 11:02:33 +08:00
@oldbird #8

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

检查下 log 出错
- 环境问题
- 同名覆盖
oldbird
2020-10-16 20:44:50 +08:00
@freakxx 可以把 master 解压后除 setup.py 外的那个文件夹直接拷贝到 site-packages 目录里用吗?
很奇怪,b.py 明明存在,在 a.py 里 import b 就是提示不存在。
不知道怎么解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX