簡體   English   中英

為什么pip無法成功安裝python和非python文件?

[英]Why aren't python and non-python files installed successfully by 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

為什么只包含一個雞蛋鏈接文件?

pip install -e . 以“可編輯”模式安裝軟件包。 它會創建鏈接,並允許您編輯源代碼,而無需不斷重新安裝。

因此,您的軟件包已正確安裝。 這就是“可編輯”模式的工作方式。

試試python -c 'import MyParserPkg'

您正在使用-e標志,該標志使程序包可編輯。 根據文檔

從根本上來說,“可編輯”安裝是“ setuptools開發模式”安裝。

通過該鏈接可以提供:

為此,請使用setup.py development命令。 它與setup.py install或EasyInstall工具非常相似,但實際上並沒有安裝任何東西。 而是在部署目錄中創建一個特殊的.egg-link文件,該文件鏈接到項目的源代碼。 而且,如果您的部署目錄是Python的site-packages目錄,它還將更新easy-install.pth文件以包含您項目的源代碼,從而使sys.path中的所有使用該Python安裝的程序都可以使用它。

因此,它在某種意義上“安裝”了它,可供其他任何模塊使用,但實際上並沒有覆蓋文件,因此您可以編輯代碼並立即對其進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM