使用 --no-cache-dir 和 --target 進行 pip install

使用 --no-cache-dir 和 --target 進行 pip install

我正在嘗試創建一個將運行 python 腳本的 AWS lambda 函數,並且它必須使用 python2.7 (因為我無法使其與 python3 一起使用)。我正在嘗試為我的腳本編寫一個依賴包,其中包含漂亮的湯,但我不斷遇到錯誤訊息:

ImportError: No module named html.entities

我找到了錯誤的根源(https://docs.python.org/2.7/library/htmllib.html#module-htmlentitydefs- 該模組在從 2 到 3 的切換中被重命名,我找到了一個解決方案,可以使其在我的計算機上運行而不會出現此錯誤。如果我只是運行pip install --upgrade --no-cache-dir beautifulsoup4,那麼我可以運行python2.7 master.py並且它可以正常工作而不會出現錯誤。但當我嘗試創建這個依賴包時,問題就來了。我運行pip install --upgrade --no-cache-dir beautifulsoup4 --target .並且我想要的包顯示在目錄中,但是當我再次運行腳本時,它得到與以前相同的錯誤:

/home/user/.../tempStorage/bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
  'The soupsieve package is not installed. CSS selectors cannot be used.'
Traceback (most recent call last):
  File "master.py", line 10, in <module>
    from bs4 import BeautifulSoup
  File "/home/user/.../tempStorage/bs4/__init__.py", line 34, in <module>
    from .builder import builder_registry, ParserRejectedMarkup
  File "/home/user/.../tempStorage/bs4/builder/__init__.py", line 7, in <module>
    from bs4.element import (
  File "/home/user/.../tempStorage/bs4/element.py", line 19, in <module>
    from bs4.dammit import EntitySubstitution
  File "/home/user/.../tempStorage/bs4/dammit.py", line 13, in <module>
    from html.entities import codepoint2name
ImportError: No module named html.entities

似乎不同之處在於,這次它使用的是安裝到其所在目錄的依賴項,而不是我的計算機上其他位置的依賴項,不幸的是,我需要能夠使用此目錄中的依賴項。任何幫助,將不勝感激。

編輯:

更多資訊。當python2.7 -c "import bs4 ; print(bs4.__version__)"我從放置依賴包的目錄(使用 --target 命令)運行時,我得到

bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
  'The soupsieve package is not installed. CSS selectors cannot be used.'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "bs4/__init__.py", line 34, in <module>
    from .builder import builder_registry, ParserRejectedMarkup
  File "bs4/builder/__init__.py", line 7, in <module>
    from bs4.element import (
  File "bs4/element.py", line 19, in <module>
    from bs4.dammit import EntitySubstitution
  File "bs4/dammit.py", line 13, in <module>
    from html.entities import codepoint2name
ImportError: No module named html.entities

當我從不同的目錄運行相同的命令時(cd ..在這種情況下我剛剛去了)我得到

4.4.1

相關內容