python文档经常提到"容器".例如:
如果check_circular为False(默认值:True),则将跳过对容器类型的循环引用检查,并且循环引用将导致OverflowError(或更糟).
但我找不到容器的任何官方定义,也没有列出它们.
对于Python 2.7.3:
检查内置类型是容器:
(isinstance(object, collections.Container)
退货True
)
已__contains__
定义方法的容器:
没有__contains__
定义方法的容器:
检查不是容器的内置类型:
(isinstance(object, collections.Container)
返回False
):
告诉我你检查了哪些其他内置类型isinstance(object, collections.Container)
,我会将它们添加到列表中.
我无法将项目正确安装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) 对于Linux,这将给我/
,因为C盘上的Windows会给我C:\\
.请注意,python不一定安装在Windows上的C驱动器上.
项目树:
$.
??? 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
文件?
当我创建一个包含其唯一内容的模块时:
class Classname(randomobject):
pass
Run Code Online (Sandbox Code Playgroud)
我尝试运行解释器说randomobject
没有定义的模块的.py文件.
但当我这样做时:
class Classname(object):
pass
Run Code Online (Sandbox Code Playgroud)
模块运行得很好.所以,如果object
不是关键字,那么它是什么?
我创建了一个目录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)
我已经查看了类似帖子的答案,但似乎没有任何效果:
当我运行python -m SimpleHTTPServer 8000
或python -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以及我托管它的文件夹.
我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()
.
有什么区别:
class ClassName(object):
pass
Run Code Online (Sandbox Code Playgroud)
和
class ClassName:
pass
Run Code Online (Sandbox Code Playgroud)
当我调用那些类的模块的帮助功能时,你可以阅读____builtin____.object
CLASS标题下的第一个案例.对于第二种情况,它只显示类名.这些类和/或其可能的方法之间是否存在功能差异?
(我知道它class Classname(ParentClassName)
有功能用途)