2016-01-06 57 views
1

當啓動pypi-server時,收到一條錯誤消息,內容爲「格式錯誤的htpasswd文件」。即使.htpasswd文件不存在,我也會收到錯誤消息。什麼導致了錯誤?「格式錯誤的htpasswd文件」啓動pypi-server時出現錯誤信息

這裏是整個回溯:

C:\Data>pypi-server -p 8080 -P packages\.htaccess packages 
Traceback (most recent call last): 
    File "c:\python27\lib\runpy.py", line 162, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 
    File "c:\python27\lib\runpy.py", line 72, in _run_code 
    exec code in run_globals 
    File "C:\Python27\Scripts\pypi-server.exe\__main__.py", line 9, in <module> 
    File "c:\python27\lib\site-packages\pypiserver\__main__.py", line 293, in main 
    app = pypiserver.app(**vars(c)) 
    File "c:\python27\lib\site-packages\pypiserver\__init__.py", line 124, in app 
    config, packages = core.configure(**kwds) 
    File "c:\python27\lib\site-packages\pypiserver\core.py", line 47, in configure 
    htPsswdFile = HtpasswdFile(c.password_file) 
    File "c:\python27\lib\site-packages\passlib\apache.py", line 583, in __init__ 
    super(HtpasswdFile, self).__init__(path, **kwds) 
    File "c:\python27\lib\site-packages\passlib\apache.py", line 166, in __init__ 
    self.load() 
    File "c:\python27\lib\site-packages\passlib\apache.py", line 236, in load 
    self._load_lines(fh) 
    File "c:\python27\lib\site-packages\passlib\apache.py", line 261, in _load_lines 
    key, value = parse(line, idx+1) 
    File "c:\python27\lib\site-packages\passlib\apache.py", line 590, in _parse_record 
    % lineno) 
ValueError: malformed htpasswd file (error reading line 1) 

我有以下文件夾結構:

C:\Data\packages\.htaccess 
C:\Data\packages\.htpasswd 

.htaccess文件的內容是:

AuthName "Under Development" 
AuthUserFile C:\Data\packages\.htpasswd 
AuthType basic 
Require valid-user 

的內容.htpasswd文件是:

user:$apr1$zYBRb3n6$PBrNqfGoyb9ZQC5hGuRJN0 
+0

你是如何啓動pypi-server的? – Petri

+0

我通過鍵入以下命令在終端中啓動pypi-server:「pypi-server -p 8080 -P packages \ .htaccess packages」。因此,我在「Path」環境變量中添加了「C:\ Python27 \ Scripts」。 – MikeSchneeberger

回答

1

pypiserver不支持.htaccess文件;這是僅限Apache的功能。它只是重用了Apache的.htpasswd文件格式。

此外,htpasswd文件最好不要位於packages文件夾內,爲pypiserver不可能錯誤地服務於它,從而顯示其內容。

因此,移動htpasswd文件例如刪除點前綴(不需要隱藏/特殊),並更改啓動命令:

move packages\.htpasswd .\htpasswd 
del packages\.htaccess 
pypiserver -p 8080 -P htpasswd packages 
+0

你說過「pypiserver不支持.htaccess文件;」但爲什麼它寫在https://github.com/pypiserver/pypiserver上用.htaccess文件啓動pypi-server:「./pypi-server -p 8080 -P .htaccess〜/ packages&」? – MikeSchneeberger

+0

文檔在這裏錯了!感謝您指出這一點。 – ankostis