为什么pip无法成功安装python和非python文件?

时间:2019-08-14 18:31:20

标签: python pip

我的项目具有如下文件结构:

MyParserPkg/
  setup.py
  requirements.txt
  readme.txt
  MANIFEST.in
  doc/
  logs/

  ParserPKG/
  // many python files here
  parser.py
  config.a.ini
  config.b.ini

清单的内容是:

include README.txt requirements.txt
include ParserPkg/config.a.ini
include ParserPkg/config.b.ini

我的setup.py:

setup(name='ParserPkg', 
      version='0.1',
      description='A parser for testing',
      packages=['ParserPkg'],
      zip_safe=False)

然后我这样做:

pip install -r requirements.txt
pip install -e .

安装后,然后检查安装项目的虚拟环境的站点软件包,发现其中仅包含一个文件:

my-envs/dialog-as-api/lib/python3.7/site-packages/ParserPkg.egg-link

以及此文件的内容,这是我的项目的路径:

/Users/lvisa/MyParserPkg

为什么只包含一个鸡蛋链接文件?

2 个答案:

答案 0 :(得分:1)

pip install -e .以“可编辑”模式安装软件包。它会创建链接,并允许您编辑源代码,而无需不断重新安装。

因此,您的软件包已正确安装。这就是“可编辑”模式的工作方式。

尝试python -c 'import MyParserPkg'

答案 1 :(得分:1)

您正在使用-e标志,这使程序包可编辑。根据{{​​3}},

  

“可编辑”安装基本上是the documentation安装。

下面的链接提供:

  

为此,请使用setup.py开发命令。它实际上没有安装任何东西,但其功能与setup.py install或EasyInstall工具非常相似。而是在部署目录中创建一个特殊的.egg-link文件,该文件链接到项目的源代码。而且,如果您的部署目录是Python的site-packages目录,它还将更新easy-install.pth文件以包含您项目的源代码,从而使sys.path中的该文件可用于使用该Python安装的所有程序。

因此,它在某种意义上可以“安装”其他任何模块都可以使用,但实际上并没有覆盖文件,因此您可以编辑代码并立即对其进行测试。