我正在为我编写的Python包开发发行版,因此可以将其发布在PyPI上。这是我第一次使用distutils,setuptools,distribute,pip,setup.py等,我的学习曲线比我预期的陡峭得多:)
通过data_files
在setup.py 的参数中指定我的一些测试数据文件来将它们包含在tarball中,我遇到了一些麻烦,直到我遇到了另一篇文章指出我指向该MANIFEST.in
文件。就在那时,我突然想到,您在tarball / zip中包含的内容(使用MANIFEST.in)以及用户进行easy_install或在用户的Python环境中安装的内容(基于您在中指定的内容setup.py
)是两件非常不同的东西; 通常,压缩包中的数量远远超过实际安装的数量。
这立即触发了我的代码气味,并意识到发行版必须有多个用例。我被固定在我真正参与过的唯一一个项目上,使用easy_install或pip安装库。然后,我意识到我正在开发工作产品,而我对该开发的最终用户只有部分了解。
所以我的问题是:“除了将Python发行版安装在自己的Python环境中之外,Python发行版还有哪些用例?该发行版我还为谁服务?他们最关心的是什么?”
以下是我尚未弄清楚的一些工作问题,这些问题会影响答案:
在源代码分发中包含源代码控制(git)下的所有内容是否明智?在github时代,有人下载源代码发行版来访问完整的项目源代码吗?还是我应该发布指向我的github存储库的链接?不会将所有内容都夸大发行版,并且使只想安装它的人花更长的时间下载吗?
我将把文档托管在readthedocs.org上。在源代码发行版中包含文档的HTML版本对我来说有意义吗?
有人用来python setup.py test
在源分发版上运行测试吗?如果是这样,他们将扮演什么角色,他们处于什么情况?我不知道我是否应该为进行这项工作而烦恼,如果这样做,谁应该为之工作。
我刚安装Cmder
在Windows机器上,作为安装Cygwin和使用bash shell的先驱。
这是我第一次安装它,我注意到使用的提示字符是lambda'?'。至少在* nix环境中,我更习惯将'$'作为默认提示字符。
lambda是否表示任何特别来自其他计算传统的东西?还是因为看起来很酷而将其作为默认设置?
假设我有一个像这样的 Python 枚举:
from enum import Enum
class FRUIT(Enum):
APPLE = 1
BANANA = 2
LEMON = 3
ORANGE = 4
Run Code Online (Sandbox Code Playgroud)
我想以有用的方式对它们进行“子集化”,比如可以说:
if fruit in FRUIT.CITRUS:
make_juice()
Run Code Online (Sandbox Code Playgroud)
我在某个地方定义了:CITRUS = {LEMON, ORANGE}
。
我想将子集保留为主枚举的属性,因为它会在上下文中保留子集的使用。
我知道我可以做这样的事情,但我强烈希望避免使用方法调用符号。而且每次需要时重建集合似乎很浪费:
@classmethod
def CITRUS(cls):
return {cls.LEMON, cls.ORANGE}
Run Code Online (Sandbox Code Playgroud)
有没有办法在枚举元类完成其工作后添加类属性而不破坏事物?
我想使用 python-pptx 库从演示文稿中的图表中读取数据。我已经看过替换图表数据的文档,但我不知道如何读取数据。
我在这里使用python-pptx玩了一轮游戏,但我还需要另存为pdf,而且我似乎看不到该库支持此功能。
是否有人(在该库中或在外部解决方案中)有一个建议来创建一个pptx文件,但也可以选择另存为pdf。
我正在使用 python-pptx 0.6.0,我创建了一个带有标题内容的幻灯片。我想将图片插入到内容占位符中,但没有使用 add_picture 或 insert_picuture 等属性。如何将图片添加到此内容占位符中?谢谢回答我的问题 :)
是否有一般的经验法则来了解对某个操作numpy.ndarray
产生值的副本以及哪些就地改变它们?
我对 numpy 还很陌生,我相信我最终会以艰难的方式学习,但我想知道是否有推动可变性的一般原则可能有助于加快我的学习速度。
我对 python-docx 中“运行级内容”的概念有些困惑。我明白,如果我想检查一个段落是否以粗体显示,我需要检查 run.bold,但究竟是什么它?官方定义是:运行是与内联内容最密切相关的对象;在段落内的块项目边界之间流动的文本、图片和其他项目。
那么,是不是段落中的单字级内容呢?我在这里错过了什么吗?
我正在使用 python-docx 创建一个新文档,然后添加一个表(行=1,列=5)。然后我向五个单元格中的每一个添加一张图片。我的代码可以运行,但我从 docx 中看到的内容与我手动使用 Word 时看到的内容不同。
具体来说,如果我设置“显示格式标记”,然后查看 docx 生成的内容,则每个单元格的开头总是有一个硬回车(通过 add_paragraph 方法放置在那里)。当我手动使用 Word 时,没有硬性回报。
硬返回的结果是每张图片都比我想要的位置下降了一行。如果我使用 Word,图片就会出现在我期望的位置。
另外奇怪的是,在docx文档上我可以手动进去单击硬回车旁边,按一次下光标键,然后按一次退格键,硬回车被删除,图片移动到细胞的顶部。
所以我的问题是,有谁知道如何在执行 add_paragraph 方法时在表格单元格中获取图片而不需要硬返回?
任何帮助将不胜感激。
def paragraph_format_run(cell):
paragraph = cell.add_paragraph()
format = paragraph.paragraph_format
run = paragraph.add_run()
format.space_before = Pt(0)
format.space_after = Pt(0)
format.line_spacing = 1.0
format.alignment = WD_ALIGN_PARAGRAPH.CENTER
return paragraph, format, run
def main():
document = Document()
sections = document.sections
section = sections[0]
section.top_margin = Inches(1.0)
section.bottom_margin = Inches(1.0)
section.left_margin = Inches(0.75)
section.right_margin = Inches(0.75)
table = document.add_table(rows=1, cols=5)
table.allow_autofit = False
cells = …
Run Code Online (Sandbox Code Playgroud) 我将一些代码从 IDLE 3.5(64 位)转移到 pycharm(Python 2.7)。大部分代码仍然有效,例如我可以从 docx.enum.text 导入 WD_LINE_SPACING,但由于某种原因我无法导入 WD_ALIGN_PARAGRAPH。
起初,几乎没有导入起作用,但是在我执行
pip install python-docx
而不是
pip install docx之后
,除了 WD_ALIGN_PARAGRAPH 之外,大多数导入都起作用。
# works
from __future__ import print_function
import xlrd
import xlwt
import os
import subprocess
from calendar import monthrange
import datetime
from docx import Document
from datetime import datetime
from datetime import date
from docx.enum.text import WD_LINE_SPACING
from docx.shared import Pt
# does not work
from docx.enum.text import WD_ALIGN_PARAGRAPH
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误消息,但 Pycharm 将该行标记为错误:“在‘text.py’中找不到引用‘WD_ALIGN_PARAGRAPH’”。
python ×6
python-docx ×3
python-pptx ×3
cmder ×1
distribute ×1
distutils ×1
enums ×1
lambda ×1
linux ×1
numpy ×1
pip ×1
powerpoint ×1
prompt ×1
pycharm ×1
python-2.7 ×1
setuptools ×1
shell ×1
windows ×1