2

我正在尝试根据这些说明设置一个简单的 Python 存储库。

我已经创建了所需的目录结构,但pip找不到任何版本。在深入研究该主题并参考PEP 503 - Simple Repository API后,我发现自动生成的 HTML 站点的结构应该是:

<!DOCTYPE html>
<html>
  <body>
    <a href="/frob/">frob</a>
    <a href="/spamspamspam/">spamspamspam</a>
  </body>
</html>

同一个 PEP 还说:

锚标记的文本必须是项目的规范化名称,并且 href 属性必须链接到该特定项目的 URL。

就我而言,它看起来像这样:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<ul><li><a href="packet_name/"> packet_name/</a></li>
</ul>
</body></html>

<a>请注意标签开头的空格和末尾的斜杠。这是

<a href="packet_name/"> packet_name/</a>

但应该是

<a href="packet_name/">packet_name</a>

.htaccess 文件当前如下所示:

Options +Indexes
IndexOptions SuppressColumnSorting -FancyIndexing
IndexIgnore ..

有没有办法指示 Apache 按照 PEP 503 的要求提供目录布局?

4

1 回答 1

2

原来问题不是链接的格式,而是标准化的文件夹结构。PEP 503 期望对根级别的文件夹进行规范化。考虑项目的名称是foo_bar. 然后,目录布局必须是:

.
|- foo-bar
|-- foo_bar-0.1.tar.gz

请注意,通过将., -, or _字符替换为单个-. 之后.htaccess文件和自动生成的索引工作得很好。

这是 PEP 503 的相关部分:

PEP 是否引用了“规范化”项目名称的概念。根据 PEP 426,名称中唯一有效的字符是 ASCII 字母、ASCII 数字、.、- 和 _。名称应小写,所有字符 .、- 或 _ 替换为单个 - 字符。这可以在 Python 中使用 re 模块实现:

于 2019-03-10T20:48:45.100 回答