Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

1
Python“私有”函数编码约定
在编写python模块及其中的函数时,我有一些“公开”函数应该向外界公开,但还有一些其他“私有”函数只能在本地和内部查看和使用。 我了解在python中没有绝对私有函数。但是,区分“公共”功能和“私人”功能的最佳,最简洁或最常用的样式是什么? 我列出了一些我知道的样式: __all__在模块文件中使用以指示其“公共”功能(python __all__模块级别变量的作用是什么?) 在“私有”函数名称的开头使用下划线 人们还有其他想法或约定吗? 非常感谢你!

15
Python:未安装_imagingft C模块
我尝试了很多发布在网络上的解决方案,但它们不起作用。 >>> import _imaging >>> _imaging.__file__ 'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd' >>> 因此系统可以找到_imaging,但仍不能使用truetype字体 from PIL import Image, ImageDraw, ImageFilter, ImageFont im = Image.new('RGB', (300,300), 'white') draw = ImageDraw.Draw(im) font = ImageFont.truetype('arial.ttf', 14) draw.text((100,100), 'test text', font = font) 引发此错误: ImportError: The _imagingft C module is not installed File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__ raise …

8
在Python中相交两个字典
我正在研究一个反向索引的搜索程序。索引本身是一个字典,其键是术语,其值本身是短文档的字典,ID号是键,其文本内容是值。 为了对两个词执行“与”搜索,因此我需要与他们的发布列表(字典)相交。在Python中有什么明确的方法(不一定太聪明)?我首先尝试了以下方法iter: p1 = index[term1] p2 = index[term2] i1 = iter(p1) i2 = iter(p2) while ... # not sure of the 'iter != end 'syntax in this case ...

7
python pip指定库目录和包含目录
我正在使用pip并尝试安装一个名为pyodbc的python模块,该模块对非Python库(例如unixodbc-dev,unixodbc-bin,unixodbc)具有某些依赖性。目前,我只能在玩游戏,因此无法在整个系统上安装这些依赖项,因此我将它们安装在非标准位置。如何告诉pip在哪里寻找这些依赖项?更确切地说,如何在构建pyodbc扩展时通过包含dirs(gcc -I)和库dirs(gcc -L -l)的点传递信息?


10
python中已编译的regex对象的类型
python中已编译的正则表达式的类型是什么? 我特别要评估 isinstance(re.compile(''), ???) 确实是出于自省的目的。 我的一个解决方案是,具有一些全局常量REGEX_TYPE = type(re.compile('')),但是它看起来并不优雅。 编辑:我想这样做的原因是因为我有字符串列表和已编译的正则表达式对象。我想根据列表“匹配”字符串 对于列表中的每个字符串,请尝试检查字符串是否相等。 对于列表中的每个正则表达式,请尝试检查字符串是否与给定的模式匹配。 我想到的代码是: for allowed in alloweds: if isinstance(allowed, basestring) and allowed == input: ignored = False break elif isinstance(allowed, REGEX_TYPE) and allowed.match(input): ignored = False break
74 python  regex  types 



11
如何在Django模板中包含图像文件?
我是Django的新手,我正尝试通过一个正在开发的简单项目“ dubliners”和一个名为“ book”的应用程序来学习它。目录结构是这样的: dubliners/book/ [includes models.py, views.py, etc.] dubliners/templates/book/ 我有一个JPG文件,需要在每个网页的页眉中显示。我应该在哪里存储文件?我应该使用哪个路径来使用模板显示标签?我已经尝试过各种位置和路径,但到目前为止没有任何效果。 ... 感谢您在下面发布答案。但是,我尝试了图像的相对路径和绝对路径,但仍然在网页上显示了损坏的图像图标。例如,如果我的主目录中有一个图像,并在模板中使用此标记: <img src="/home/tony/london.jpg" /> 图像不显示。但是,如果将网页另存为静态HTML文件,则会显示图像,因此路径正确。也许Django随附的默认Web服务器仅在图像位于特定路径上时才显示图像?

8
如何在Python脚本中运行Scrapy
我是Scrapy的新手,我正在寻找一种从Python脚本运行它的方法。我找到2个资料来解释这一点: http://tryolabs.com/Blog/2011/09/27/calling-scrapy-python-script/ http://snipplr.com/view/67006/using-scrapy-from-a-script/ 我不知道应该在哪里放置我的Spider代码以及如何从main函数中调用它。请帮忙。这是示例代码: # This snippet can be used to run scrapy spiders independent of scrapyd or the scrapy command line tool and use it from a script. # # The multiprocessing library is used in order to work around a bug in Twisted, in which you cannot restart …

11
3D矢量旋转?
我有两个向量作为Python列表和一个角度。例如: v = [3,5,0] axis = [4,4,1] theta = 1.2 #radian 围绕轴旋转v向量时,最佳/最简单的方法是获得结果向量? 对于轴向量所指向的观察者,旋转应该看起来是逆时针方向。这称为右手法则

7
相当于R表的python
我有一个清单 [[12, 6], [12, 0], [0, 6], [12, 0], [12, 0], [6, 0], [12, 6], [0, 6], [12, 0], [0, 6], [0, 6], [12, 0], [0, 6], [6, 0], [6, 0], [12, 0], [6, 0], [12, 0], [12, 0], [0, 6], [0, 6], [12, 6], [6, 0], [6, 0], [12, …
74 python  r  frequency 


4
多处理中的共享内存
我有三个大名单。前一个包含位数组(模块位数组0.8.0),另外两个包含整数数组。 l1=[bitarray 1, bitarray 2, ... ,bitarray n] l2=[array 1, array 2, ... , array n] l3=[array 1, array 2, ... , array n] 这些数据结构占用相当多的RAM(总计约16GB)。 如果我使用以下方法启动12个子流程: multiprocessing.Process(target=someFunction, args=(l1,l2,l3)) 这是否意味着将为每个子流程复制l1,l2和l3,或者子流程将共享这些列表?或者更直接地说,我将使用16GB还是192GB的RAM? someFunction将从这些列表中读取一些值,然后根据读取的值执行一些计算。结果将返回到父进程。列表l1,l2和l3不会被someFunction修改。 因此,我假设子流程不需要并且不会复制这些庞大的列表,而只会与父级共享它们。意味着由于linux下的写时复制方法,该程序将占用16GB的RAM(无论我启动了多少个子进程)?我是对的还是我遗漏了一些会导致列表被复制的东西? 编辑:在阅读了有关该主题的更多内容后,我仍然感到困惑。一方面,Linux使用写时复制,这意味着没有数据被复制。另一方面,访问对象将更改其引用计数(我仍然不确定为什么以及这意味着什么)。即使这样,会复制整个对象吗? 例如,如果我定义someFunction如下: def someFunction(list1, list2, list3): i=random.randint(0,99999) print list1[i], list2[i], list3[i] 使用此功能是否意味着将为每个子流程完全复制l1,l2和l3? 有办法检查吗? EDIT2在多了一点并监视子进程运行时系统的总内存使用情况之后,似乎确实为每个子进程复制了整个对象。这似乎是因为引用计数。 在我的程序中,实际上不需要l1,l2和l3的引用计数。这是因为l1,l2和l3将保留在内存中(不变),直到父进程退出。在此之前,无需释放这些列表使用的内存。实际上,我可以肯定的是,在程序退出之前,引用计数将保持高于0(对于这些列表和这些列表中的每个对象)。 所以现在的问题变成了,我如何确保对象不会复制到每个子流程?我是否可以禁用这些列表以及这些列表中每个对象的引用计数? EDIT3只是一个附加说明。子进程并不需要修改l1,l2并l3或在这些列表中的任何对象。子流程仅需要能够引用其中一些对象,而无需为每个子流程复制内存。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.