2012-04-11 55 views
2

我已經寫了一個小工具並上傳到pypi(here),但我無法使用pip下載它。這裏是點子日誌:上傳到pypi並用pip下載

------------------------------------------------------------ 
c:\python32\scripts\pip-script.py run on 04/11/12 15:53:45 
Downloading/unpacking undo 

    Getting page http://pypi.python.org/simple/undo 
    Could not fetch URL http://pypi.python.org/simple/undo: HTTP Error 301: Moved Permanently - Redirection to url '/simple/undo/' is not allowed 
    Will skip URL http://pypi.python.org/simple/undo when looking for download links for undo 
    Getting page http://pypi.python.org/simple/ 
    Real name of requirement undo is undo 

    URLs to search for versions for undo: 
    * http://pypi.python.org/simple/undo/ 
    Getting page http://pypi.python.org/simple/undo/ 
    Getting page http://bitbucket.org/aquavitae/undo 
    Analyzing links from page http://pypi.python.org/simple/undo/ 
    Skipping link http://bitbucket.org/aquavitae/undo (from http://pypi.python.org/simple/undo/); not a file 
    Could not parse version from link: https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/) 
    Skipping link https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/); wrong project name (not undo) 
    Could not find any downloads that satisfy the requirement undo 

No distributions at all found for undo 

Exception information: 
Traceback (most recent call last): 
    File "C:\python32\lib\site-packages\pip\basecommand.py", line 104, in main 
    status = self.run(options, args) 
    File "C:\python32\lib\site-packages\pip\commands\install.py", line 245, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "C:\python32\lib\site-packages\pip\req.py", line 978, in prepare_files 
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade) 
    File "C:\python32\lib\site-packages\pip\index.py", line 157, in find_requirement 
    raise DistributionNotFound('No distributions at all found for %s' % req) 
pip.exceptions.DistributionNotFound: No distributions at all found for undo 

任何人都可以看到我要去哪裏錯了嗎?我在一個代理的後面,我認爲這可能是問題,但點與其他包沒有問題,只是這個,所以我認爲我已經以某種方式打包它錯了。

+0

可以通過點擊跳過https鏈接嗎?您是否嘗試使用http鏈接? – tito 2012-04-11 14:34:13

回答

0

我不知道它是否在PIP或故意的錯誤,但一旦我打開了bitbucket網站的工作,儘管事實上,它需要下載(並下載)的實際文件託管在pypi上。所以如果其他人有這個問題,解決方案是確保pypi頁面上的所有鏈接都可以訪問,即使它們沒有託管下載文件。

1

https中的bitbucket鏈接僅在您通過身份驗證時才起作用。改用bitbucket上的http鏈接。

(兩個網站/問題同樣的問題,跟蹤在PyPI將網頁鏈接,我不能訪問它沒有登錄第一)

編輯:HTTP鏈接重定向到登錄頁面,並經過登錄,我得到了:

您無權訪問此存儲庫。

+0

pip正在拾取的https鏈接甚至不在pypi上 - 這是前一陣子,但是當我意識到它是https並且名稱格式錯誤時,我將其刪除。 Pip應該只下載pypi上的tar.gz文件。看起來我使bitbucket回購私人,所以我會更正,當我在我的電腦旁,但它不應該影響從pypi下載。 – aquavitae 2012-04-11 15:07:17

0

您可能需要使用類似latest.tar.gz#雞蛋結尾的鏈接=撤消

1

有幾個問題:你的tar文件沒有包名('undo'不是'latest.tar.gz'的子串);並由於某種原因pypi想重定向(這似乎不正常,所以我不會進入)。

通常情況下,pip首先會查看所有匹配您包名稱的網址,包括主頁和pypi在http://pypi.python.org/simple/undo/上提供的下載頁面(假設您同時指定了這兩個網址)。那些具有項目名稱的網頁上的任何網址都會被分析。

幾件事情讓PIP拒絕網址:

Skipping link http://bitbucket.org/aquavitae/undo (from http://pypi.python.org/simple/undo/); not a file 

這個URL已經在它撤消,但它並不指向一個文件。

Could not parse version from link: https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/) 

有一個在latest.tar.gz

Skipping link https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/); wrong project name (not undo) 
在文件組件

沒有項目名稱undo沒有版本號。

事情現在的工作是因爲https://bitbucket.org/aquavitae/undo/downloads是可訪問的,並與在它和不很多,很多環節的文件名部分撤銷3個環節。使用:

pip install undo --no-install --log undo.log 

並看看undo.log文件。

請注意,pip使用pkg_resources(位於dist_packages)中的函數parse_versions來確定可用的最新版本。因此,即使您明確指定undo-1.1.tar.gz作爲pypi下載鏈接上的版本,但如果您的主頁也指向undo-1.2-dev-20120614等較新版本,則後者將被視爲已找到。