小编Ben*_*ey4的帖子

python中究竟是什么"容器"?(什么是python容器类型?)

python文档经常提到"容器".例如:

如果check_circular为False(默认值:True),则将跳过对容器类型的循环引用检查,并且循环引用将导致OverflowError(或更糟).

但我找不到容器的任何官方定义,也没有列出它们.

编辑

对于Python 2.7.3:

检查内置类型是容器:

(isinstance(object, collections.Container)退货True)

  1. __contains__定义方法的容器:

    • 所有内置序列类型:列表,字节数组,字符串,unicode字符串和元组.
    • 字典
    • 所有内置集类型:集合和frozensets
  2. 没有__contains__定义方法的容器:

    • xrange对象

检查不是容器的内置类型:

(isinstance(object, collections.Container)返回False):

  • Int对象
  • 浮动物体
  • 长物体
  • 布尔对象
  • 模块对象
  • 文件对象
  • 缓冲对象
  • 无对象

告诉我你检查了哪些其他内置类型isinstance(object, collections.Container) ,我会将它们添加到列表中.

python containers

53
推荐指数
2
解决办法
4万
查看次数

Python打包:数据文件正确放在tar.gz文件中,但未安装到虚拟环境中

我无法将项目正确安装package_fiddler到我的虚拟环境中.

我已经发现,MANIFEST.in 负责将non.py文件放在Package_fiddler-0.0.0.tar.gz执行时生成的文件中 python setup.py sdist.

然后我做了:

(virt_envir)$ pip install dist/Package_fiddler-0.0.0.tar.gz

但这并没有安装数据文件或包/home/username/.virtualenvs/virt_envir/local/lib/python2.7/site-packages.

我已经试过的设置参数许多配置package_data,include_package_data并且data_files但我似乎每次都使用了错误的配置.

哪种配置package_data和/或include_package_data和/或data_files将正确安装package_fiddler到我的虚拟环境中?

项目树

.
??? MANIFEST.in
??? package_fiddler
?   ??? data
?   ?   ??? example.html
?   ?   ??? stylesheets
?   ?       ??? example.css
?   ??? __init__.py
??? README.rst
??? setup.py
Run Code Online (Sandbox Code Playgroud)

setup.py

from setuptools import setup


setup(
    name='Package_fiddler',
    entry_points={
    'console_scripts': ['package_fiddler = package_fiddler:main', ],},
    long_description=open('README.rst').read(),
    packages=['package_fiddler',]) …
Run Code Online (Sandbox Code Playgroud)

python packaging setuptools setup.py

42
推荐指数
3
解决办法
1万
查看次数

一种独立于系统的方法,使用python来获取安装了python的根目录/驱动器

对于Linux,这将给我/,因为C盘上的Windows会给我C:\\.请注意,python不一定安装在Windows上的C驱动器上.

python operating-system cross-platform path

40
推荐指数
5
解决办法
4万
查看次数

设置setup.py以包装单个.py文件和单个数据文件,而无需创建任何文件夹

项目树:

$.
??? happy_birthday-art.txt
??? happy_birthday.py
??? MANIFEST.in
??? README.rst
??? setup.py
Run Code Online (Sandbox Code Playgroud)

setup.py

from setuptools import setup

setup(
    name='Happy_birthday',
    py_modules=['happy_birthday'],
    data_files=['happy_birthday-art.txt'],
    entry_points={
    'console_scripts': ['happy_birthday = happy_birthday:main', ],},
    long_description=open('README.rst').read(),
)
Run Code Online (Sandbox Code Playgroud)

现在,当我在虚拟环境中执行python setup.py sdist然后pip install创建的.tar.gz文件时,我收到以下消息:

warning: install_data: setup script did not provide a directory for 'happy-birthday-art.txt' -- installing right in '/home/username/.virtualenvs/happy_birthday'
Run Code Online (Sandbox Code Playgroud)

该程序使用该.txt文件,因此在尝试之后运行它时会失败.

但我不想安装happy_birthday-art.txt到单独的文件夹中.我想将它安装在安装的文件夹中happy_birthday.py.另外,我不想使用绝对路径setup.py.我如何最好地设置我的setup.py文件?

python packaging setup.py

35
推荐指数
2
解决办法
9053
查看次数

class Classname(object),Python中的'object'是什么词?

当我创建一个包含其唯一内容的模块时:

class Classname(randomobject):
    pass
Run Code Online (Sandbox Code Playgroud)

我尝试运行解释器说randomobject没有定义的模块的.py文件.

但当我这样做时:

class Classname(object):
    pass
Run Code Online (Sandbox Code Playgroud)

模块运行得很好.所以,如果object不是关键字,那么它是什么?

python object keyword

33
推荐指数
4
解决办法
2万
查看次数

psql客户端历史记录保存在哪里?(〜/ .psql_history不存在!)

在我的psql提示符中可以看到密码(通过向上推箭头查看以前输入的命令).所以我想从psql客户端删除该条目.

其他资源(1,2)声称,PSQL客户历史记录保存在一个~/.psql_history文件,但这个文件是根本不存在.(它不在.bash_history任何一个)

所以必须有另一个文件,其中保存psql提示的历史记录,任何想法在哪里?

注意:我正在努力 Ubuntu 12.04

postgresql psql

33
推荐指数
2
解决办法
5万
查看次数

GitHub:错误:未找到存储库.致命:远程端意外挂断(显然不同于类似的帖子)

我创建了一个目录hello_git.在这个目录中,我创建了一个文件,hello_git.py打印出一个"Hello git!" 信息.

然后我hello_git在终端中创建了当前目录,并在该目录中一个接一个地输入以下命令:

git init
git add hello_git.py
git commit -m 'first commit'
git remote add origin git@github.com:githubaccountname/hello_git.git
Run Code Online (Sandbox Code Playgroud)

当我输入命令时,git push origin master我会被问到:

Enter passphrase for key '/home/myusername/.ssh/id_rsa':
Run Code Online (Sandbox Code Playgroud)

当我输入我的密码(使用成功验证ssh -T git@github.com)时,我得到了这个:

ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有帮助,但是:

git remote -v
Run Code Online (Sandbox Code Playgroud)

收益:

origin    git@github.com:githubaccountname/hello_git.git (fetch)
origin    git@github.com:githubaccountname/hello_git.git (push)
Run Code Online (Sandbox Code Playgroud)

我已经查看了类似帖子的答案,但似乎没有任何效果:

git github

31
推荐指数
3
解决办法
7万
查看次数

如何使用`python -m SimpleHTTPServer 8000`或`python -m CGIHTTPServer 8000`托管python cgi脚本?

当我运行python -m SimpleHTTPServer 8000python -m CGIHTTPServer 8000在我的shell中时,我将当前目录的内容托管到互联网上.

我想在浏览时使用命令行中的上述命令使以下cgi_script.py正常工作 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""
Run Code Online (Sandbox Code Playgroud)

但这个脚本按字面显示,而不仅仅是"Hello World!" 部分.顺便说一句,我将文件权限更改为755 cgi_script.py以及我托管它的文件夹.

python hosting cgi simplehttpserver

22
推荐指数
2
解决办法
3万
查看次数

获取ipdb的IPython选项卡完成

IPython(0.13.1)ipdb(0.7)安装,我插线import ipdb;ipdb.set_trace()在我的剧本跑python my_script.py.现在我在ipdb提示符下并且有一些自动完成(例如一个裸标签),但它与我进入IPython时获得的自动完成功能不同.在ipdb提示符中,requests.然后<tab>(导入后)没有像IPython那样给我一个属性列表.如何使用ipdb获得与IPython相同的选项卡完成?

顺便说一下,当我运行python -m ipdb my_script.py选项卡完成时,就像在IPython中一样,但是它的缺点是它从第一行启动调试器而不是我放的行import ipdb;ipdb.set_trace().

python debugging ipython pdb

21
推荐指数
2
解决办法
4873
查看次数

class ClassName与类ClassName(对象)

有什么区别:

class ClassName(object):
    pass
Run Code Online (Sandbox Code Playgroud)

class ClassName:
    pass
Run Code Online (Sandbox Code Playgroud)

当我调用那些类的模块的帮助功能时,你可以阅读____builtin____.objectCLASS标题下的第一个案例.对于第二种情况,它只显示类名.这些类和/或其可能的方法之间是否存在功能差异?

(我知道它class Classname(ParentClassName)有功能用途)

python class object

20
推荐指数
2
解决办法
1万
查看次数