当不在常规位置时,如何通过python setup.py development查找适用于python模型安装的.egg-link文件?

时间:2019-03-03 20:15:11

标签: python

当不在常规位置时,如何通过python setup.py development查找用于python模型安装的.egg-link文件?

我可以从repl加载模块并查看其指向的文件。我不应该这样做。我将其卸载为AFAIK。

编辑:我在两台不同的机器上。以为我在iterm上一直在使用tmux,但是忘记了我不是。希望这对以后的人有所帮助。

2 个答案:

答案 0 :(得分:0)

在您的文件夹中

创建 init .py并将其他文件保存在文件夹名称lib中。然后您可以使用

setup.py build egg

答案 1 :(得分:0)

下面是一个脚本,该脚本可找到您.egg-link上当前的PATH

import os
import sys

for p in sys.path:
    if os.path.exists(p):
        for f in os.listdir(p):
            if f.endswith('.egg-link'):
                print(os.path.join(p, f))

它通过遍历所有sys.path条目来工作。这是一个示例,其中我pip install -e .的克隆中有pre-commit

>>> sys.path
['', '/home/asottile/workspace/pre-commit/venv/lib/python36.zip', '/home/asottile/workspace/pre-commit/venv/lib/python3.6', '/home/asottile/workspace/pre-commit/venv/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/asottile/workspace/pre-commit/venv/lib/python3.6/site-packages', '/home/asottile/workspace/pre-commit']

其中一些路径是虚假的(例如...python36.zip),因此我们需要用os.path.exists(...)过滤掉这些路径

此后,我们搜索每个目录中的文件并打印出以.egg-link结尾的任何文件

就我而言:

$ python3 t.py
/home/asottile/workspace/pre-commit/venv/lib/python3.6/site-packages/pre-commit.egg-link