2016-01-06 42 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