簡體   English   中英

如何pip安裝本地python包?

[英]How to pip install a local python package?

我安裝了一個名為credentials的本地包

pip install -e c:\users\worker\src\clockwork\lib\credentials

但是當我嘗試從兄弟目錄導入包時,它會因ImporError而失敗:

cd c:\users\worker\src\clockwork\bank
python -c "import credentials"
...
ImportError: No module named 'credentials'

令人困惑的是,當我運行pip list時,包credentials被列為已成功安裝,如下所示:

...
credentials (1.0.0, c:\users\worker\src\clockwork\lib\credentials)
...

如何安裝本地軟件包以便可以導入?

背景

我使用的是Python 3.4(32位)。 該軟件包包含兩個文件:

credentials\__init__.py
credentials\setup.py

__init__.py文件定義了一個函數。 setup.py文件很簡短:

from distutils.core import setup

setup(name='credentials', version='1.0.0')

解決方法

我目前將包含該包的目錄( c:\\users\\worker\\src\\clockwork\\lib )添加到我的PATH變量中作為解決方法。 但我的問題是如何正確安裝軟件包,以便我不需要修改PATH

卸載python包,然后使用以下命令安裝它:

python -m pip install -e c:\users\worker\src\clockwork\lib\credentials

可能發生的事情是你有多個python安裝,並且當你試圖從另一個安裝使用包時,從一個安裝運行pip。 也可以看看:

問題集中在setup.py 它需要聲明一個包:

from distutils.core import setup

setup(name='credentials', version='1.0.0', packages=['credentials'])

但是這個setup.py必須位於credentials包的父目錄中,所以最后,目錄結構是:

...\credentials\setup.py
...\credentials\credentials\__init__.py

通過此更改,在重新安裝軟件包后找到該模塊。

這也可能是由兩個Python安裝引起的(但不是我的情況),而@Mr_and_Mrs_D給出了這種情況的答案。

暫無
暫無

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

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