Questions tagged «python»

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


12
集成Python和JavaScript的最佳方法?
是否可以集成Python和JavaScript?例如,假设您希望能够在JavaScript中定义类并从Python使用它们(反之亦然)。如果是这样,最好的方法是什么?我不仅对这是否可行还感兴趣,而且是否有人在“严肃的”项目或产品中做到了。 我想举个例子,可以使用Jython和Rhino,但我很好奇是否有人真正做到了这一点,以及是否有针对其他平台的解决方案(尤其是CPython)。

7
将布尔值用作整数是Pythonic吗?
False等效于0和True等效,1因此可以执行以下操作: def bool_to_str(value): """value should be a bool""" return ['No', 'Yes'][value] bool_to_str(True) 请注意value是如何bool使用的,但用作int。 这是Pythonic的这种用法还是应该避免?
67 boolean  python 

7
无法在virtualenv中“将matplotlib.pyplot导入为plt”
我在虚拟环境中使用烧瓶。我可以通过pip安装matplotlib,并且可以import matplotlib在Python会话中进行安装。但是,当我将其导入为 matplotlib.pyplot as plt 我收到以下错误: >>> import matplotlib.pyplot as plt Traceback (most recent call last): File "<stdin>", line 1, in <module> File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in <module> _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module> from matplotlib.backends import …

11
运行基本的TensorFlow示例时出错
我刚刚在ubuntu上重新安装了最新的tensorflow: $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl [sudo] password for ubuntu: The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H …

8
有谁知道我可以使用的基于Python的网络爬虫?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我很想写自己的书,但是现在我真的没有足够的时间。我已经看过开源爬虫的维基百科列表,但是我更喜欢用Python编写的东西。我意识到我可以只使用Wikipedia页面上的一种工具,然后将其包装在Python中。我可能最终会这样做-如果有人对这些工具有任何建议,我很乐意听到它们的信息。我已经通过其Web界面使用过Heritrix,但发现它很麻烦。我绝对不会为即将到来的项目使用浏览器API。 提前致谢。另外,这是我的第一个SO问题!

18
PIP安装Numpy引发错误“ ascii编解码器无法解码字节0xe2”
我在新构建的计算机上全新安装了Ubuntu。我刚刚使用apt-get安装了python-pip。现在,当我尝试点安装Numpy和Pandas时,出现以下错误。 我已经在SO和Google的很多地方看到过提到此错误,但是我找不到解决方案。有人提到这是一个错误,有些线程已经死了……这是怎么回事? Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==1.5.4', 'console_scripts', 'pip')() File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 185, in main return command.main(cmd_args) File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main text = '\n'.join(complete_log) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128)
67 python  numpy  pandas  pip 

5
SQLite,python,unicode和非utf数据
我首先尝试使用python将字符串存储在sqlite中,并得到以下消息: sqlite3.ProgrammingError:除非使用可以解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您改为将应用程序切换为Unicode字符串。 好的,我切换到Unicode字符串。然后我开始收到消息: sqlite3.OperationalError:无法解码为文本为“ SigurRós”的UTF-8列“ tag_artist” 尝试从数据库检索数据时。进行了更多研究,我开始在utf8中对其进行编码,但随后“ SigurRós”开始看起来像“ SigurRós” 注意: 正如@John Machin指出的那样,我的控制台设置为在“ latin_1”中显示。 是什么赋予了?看完这篇文章并描述了我所处的完全相同的情况之后,似乎该建议是忽略其他建议并毕竟使用8位字节串。 在开始此过程之前,我对unicode和utf不太了解。在过去的几个小时中,我学到了很多东西,但是我仍然不知道是否有一种方法可以将“ó”从拉丁文1正确地转换为utf-8,而不是对其进行处理。如果没有,为什么sqlite强烈建议我将应用程序切换为unicode字符串? 我将使用最近24小时内我学到的所有内容的摘要和一些示例代码来更新此问题,以便穿鞋的人可以轻松获得指南。如果我发布的信息有误或以任何方式引起误导,请告诉我,我会更新,或者你们中的一位资深人士可以更新。 答案摘要 让我先说一说我了解的目标。如果要在各种编码之间进行转换,则处理各种编码的目的是要了解源编码是什么,然后使用该源编码将其转换为unicode,然后将其转换为所需的编码。Unicode是一个基础,编码是该基础的子集的映射。utf_8可以容纳unicode中的每个字符,但是由于它们与例如latin_1不在同一个位置,因此,以utf_8编码并发送到latin_1控制台的字符串看起来不会像您期望的那样。在python中,进入unicode并转换为另一种编码的过程如下: str.decode('source_encoding').encode('desired_encoding') 或者如果str已经在unicode中 str.encode('desired_encoding') 对于sqlite,我实际上并不想再次对其进行编码,我想对其进行解码并将其保留为unicode格式。在尝试使用python中的unicode和编码时,可能需要注意以下四点。 您要使用的字符串的编码以及要获取的字符串的编码。 系统编码。 控制台编码。 源文件的编码 详细说明: (1)从源读取字符串时,它必须具有某种编码,例如latin_1或utf_8。就我而言,我从文件名中获取字符串,所以不幸的是,我可能会获得任何类型的编码。Windows XP使用UCS-2(Unicode系统)作为其本机字符串类型,这对我来说似乎是作弊行为。对我来说幸运的是,大多数文件名中的字符都不会由多个源编码类型组成,而且我认为我的全部要么完全是latin_1,完全是utf_8,要么仅仅是纯ascii(这是两个字符的子集)那些)。因此,我只是阅读它们并对其进行解码,就好像它们仍在latin_1或utf_8中一样。不过,在Windows上的文件名中,可能有latin_1和utf_8以及其他任何字符混合在一起的可能。有时这些字符会显示为方框,有时候,它们看起来像是被弄乱了,而有时候,它们看起来是正确的(带重音的字符等等)。继续。 (2)Python具有默认的系统编码,该默认系统编码会在python启动时设置,并且无法在运行时更改。有关详细信息,请参见此处。肮脏的摘要...好吧,这是我添加的文件: \# sitecustomize.py \# this file can be anywhere in your Python path, \# but it usually goes in …

4
如何在Amazone的EC2实例中运行代码?
我对EC2的功能几乎一无所知。我创建了一个Amazon Web Service(AWS)帐户。然后,我启动了一个EC2实例。 现在,我想在此实例中执行Python代码,而且我不知道如何继续。是否有必要在实例中的某处加载代码?还是在Amazon的S3中将其链接到实例? 哪里有指南解释可能的实例用法?在没有用户指导的情况下,我感觉自己像个飞碟的仪表板前的男人。

1
使用LAPACK分发基于Cython的扩展
我正在编写一个包含Cython扩展和用法LAPACK(和BLAS)的Python模块。我打开使用两种clapack或lapacke,或某种f2c或f2py解决方案,如果必要的。重要的是,我能够在紧密的循环中从Cython调用lapack和blas例程,而没有Python调用开销。 我在这里找到了一个例子。但是,该示例取决于SAGE。我希望我的模块无需安装SAGE就可以安装,因为我的用户不太可能需要SAGE或其他任何东西。我的用户可能安装了numpy,scipy,pandas和scikit Learn之类的程序包,因此这些程序包是合理的依赖项。使用的接口的最佳组合是什么?最小的setup.py文件看起来像什么,可以从中获取编译所需的信息(从numpy,scipy等)? 编辑: 这就是我最终在做什么。它可以在我的Macbook上使用,但我不知道它的便携性。当然有更好的方法。 from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import numpy from Cython.Build import cythonize from numpy.distutils.system_info import get_info # TODO: This cannot be the right way blas_include = get_info('blas_opt')['extra_compile_args'][1][2:] includes = [blas_include,numpy.get_include()] setup( cmdclass = {'build_ext': build_ext}, ext_modules = cythonize([Extension("cylapack", ["cylapack.pyx"], …
67 python  numpy  cython  lapack  blas 

9
将ConfigParser.items('')转换为字典
如何将ConfigParser.items('section')的结果转换为字典以格式化字符串,如下所示: import ConfigParser config = ConfigParser.ConfigParser() config.read('conf.ini') connection_string = ("dbname='%(dbname)s' user='%(dbuser)s' host='%(host)s' " "password='%(password)s' port='%(port)s'") print connection_string % config.items('db')
67 python 

1
读取并解析TSV文件,然后对其进行处理以保存为CSV(*高效*)
我的源数据在一个TSV文件中,包含6列和超过200万行。 这是我要完成的工作: 我需要读取此源文件中3列(3、4、5)中的数据 第五列是整数。我需要使用此整数值来复制行条目,并使用第三和第四列中的数据(按整数倍)。 我想将#2的输出写入CSV格式的输出文件。 以下是我想到的。 我的问题:这是一种有效的方法吗?尝试进行200万行时,它似乎很密集。 首先,我制作了一个示例选项卡单独的文件以供使用,并将其命名为“ sample.txt”。它是基本的,只有四行: Row1_Column1 Row1-Column2 Row1-Column3 Row1-Column4 2 Row1-Column6 Row2_Column1 Row2-Column2 Row2-Column3 Row2-Column4 3 Row2-Column6 Row3_Column1 Row3-Column2 Row3-Column3 Row3-Column4 1 Row3-Column6 Row4_Column1 Row4-Column2 Row4-Column3 Row4-Column4 2 Row4-Column6 然后我有这段代码: import csv with open('sample.txt','r') as tsv: AoA = [line.strip().split('\t') for line in tsv] for a in …

5
Pycharm导入RuntimeWarning在更新到2016.2之后
更新到新版本2016.2之后,我得到 RuntimeWarning: Parent module 'tests' not found while handling absolute import import unittest RuntimeWarning: Parent module 'tests' not found while handling absolute import import datetime as dt “ tests”是我的主应用程序包中的一个包,当我尝试在此文件夹中执行单元测试时会收到这些警告。此问题仅在更新到2016.2。之后出现。除了警告,其余代码也可以正常工作。 编辑:这是一个已知问题-https: //youtrack.jetbrains.com/issue/PY-20171。他们建议替换PyCharm安装文件夹中的utrunner.py。
67 python  import  pycharm 

8
在Ajax调用之后使用Django模板呈现JSON对象
我一直在尝试了解在Django中执行Ajax的最佳方法是什么。通过四处阅读,我了解到常见的过程是: 使用一些JavaScript库(例如jQuery)来制定您的Ajax调用,在Django中设置URL模式以捕获该调用并将其传递给视图函数 在Python视图函数中,检索您感兴趣的对象并将其以JSON格式或类似格式发送回客户端(通过使用内置的序列化器模块或simplejson) 在JavaScript中定义一个回调函数,该函数接收JSON数据并进行解析,以便创建需要显示的HTML。最后,JavaScript脚本将HTML放置在应保留的位置。 现在,我仍然不明白的是Django模板如何与所有这些相关?显然,我们根本没有利用模板的功能。理想情况下,我认为最好传回JSON对象和模板名称,以便可以迭代数据并创建HTML块。但是也许我在这里完全错了... 我发现朝这个方向发展的唯一资源是此代码段(769)但我还没有尝试过。显然,在这种情况下将要发生的所有结果HTML都是在服务器端创建的,然后传递给客户端。JavaScript回调函数只需要在正确的位置显示它。 这会导致性能问题吗?如果没有,即使不使用上面的代码段,为什么不使用Python而不是前端直接在后端格式化HTML? 非常感谢! 更新:请使用代码片段942,因为它是上述代码的增强版本!我发现继承支持通过这种方式效果更好。

4
指定指向numpy,scipy和matplotlib的Intersphinx链接的目标
在用于在软件包之间设置Sphinx文档链接的文档之后,我添加了 intersphinx_mapping = {'python': ('http://docs.python.org/2', None), 'numpy': ('http://docs.scipy.org/doc/numpy/', None), 'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None), 'matplotlib': ('http://matplotlib.sourceforge.net/', None)} 对我来说conf.py,但似乎无法获得除Python本身以外的任何项目的链接。例如 :term:`svg graphics <matplotlib:svg>` 只是将我带到索引页面,而没有添加预期的#term-svg锚点,而且我什至无法找到术语表,也无法确定scipy如何确定软件包支持哪些:ref:s或:term:s。 我在哪里可以找到如何指定目标指令:ref:S和:term:S IN numpy,scipy和matplotlib? 为此,我如何链接到Sphinx本身?新增中 intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None) 和 :ref:`Intersphinx <intersphinx>` 不起作用。

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.