我想创建一个最简单的(hello world package)包,我可以使用pip在本地zip文件的virtualenv中安装.
在python我会做
>> from myinstallpackage import mymodule
>> mymodule.sayhello()
hello !
Run Code Online (Sandbox Code Playgroud)
setup.py和包文件夹中会包含什么内容?
谢谢
os.path.exists()在做任何事情之前,我经常用来检查文件是否存在.
我遇到过一种情况,我在调用已配置的env路径中的可执行文件,因此可以在不指定的情况下调用它abspath.
在调用之前是否可以执行某些操作来检查文件是否存在?(我可能会重新开始try/except,但首先我正在寻找替代品os.path.exists())
顺便说一句 - 我在Windows上这样做.
在django admin中,使用django 1.2,我正在尝试添加一个InlineModelAdmin,以便在对条目进行更改时对保存应用注释.(对于每个编辑,一个条目应该有一个"ChangeComment").
我不想显示以前的条目,所以我试图强制ChangeCommentInline的formset.queryset为空,通过创建NoCommentsInlineFormset并在我的ChangeCommentInline中分配formset ,但仍然返回现有条目.
https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#changing-the-queryset
注-在上面的链接,他们使用BaseModelFormset,我使用BaseInlineFormset,我想到可能是问题.如果我用BaseModelFormset替换BaseInlineFormset,我得到一个关于"实例"不存在的错误.
admin.py
class NoCommentsInlineFormset(models.BaseInlineFormset):
def __init__(self, *args, **kwargs):
super(NoCommentsInlineFormset, self).__init__(*args, **kwargs)
self.queryset = ChangeComment.objects.none()
class ChangeCommentInline(admin.StackedInline):
model = ChangeComment
extra = 1
exclude = ("user", )
formset = NoCommentsInlineFormset
def save_model(self, request, obj, form, change):
"""auto-assign logined in user to comment"""
if not change:
obj.user = request.user
obj.save()
class EntryAdmin(admin.ModelAdmin):
inlines = (ChangeCommentInline, )
Run Code Online (Sandbox Code Playgroud)
可以限制Inline中显示的ChangeComment条目,还是有更好的方法来处理它?
我有一组数据,我想从中绘制每个唯一ID 数的键数 (x = unique_id_count,y = key_count),我正在尝试学习如何利用pandas.
在这种情况下:
unique_ids 1 =密钥数2
unique_ids 2 =密钥数1
from pandas import *
key_items = ("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c")
id_data = ("X", "X", "X", "X", "X", "X", "X", "Y", "Y", "Y", "X", "X", "X")
df = DataFrame({'keys': key_items, 'ids': id_data})
Run Code Online (Sandbox Code Playgroud)
我已经设法通过从数据框中提取数据并重新构建数据并重建新数据帧,将数据转换为我想要的数据.在这种情况下,最好不要在没有pandas的python中完成所有操作......
unique_values = defaultdict(list)
for items in df.itertuples(index=False):
key = items[1]
v = items[0]
unique_values[key].append(v)
unique_values_count = {}
for k, values in …Run Code Online (Sandbox Code Playgroud) 我已经使用openlayers和OpenStreetMaps运行管理应用程序运行geodjango .
现在我想写一些视图来显示数据.基本上,我只想在地图中添加一个点列表(在管理员中看到).
Geodjango似乎使用了一个特殊的 openlayers.js文件来管理它.有没有一种很好的方式与此接口?
如何编写视图/模板以在打开的街道地图窗口中显示geodjango数据,如管理员所示?
目前,我正在挖掘openlayers.js文件和api寻找一个"简单"的解决方案.(我没有经验,所以这需要一些时间.)
我可以看到的当前方式是将以下内容添加为模板,并使用django添加显示点所需的代码.(根据这里的例子)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Draw Feature Example</title>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init(){
map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
/*
* Layer style
*/
// we want opaque external graphics and non-opaque internal graphics
var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
layer_style.fillOpacity = 0.2;
layer_style.graphicOpacity = 1;
/*
* Blue style
*/
var …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ldap3版本'0.9.7.4' 将一些代码更新为python3 .(https://pypi.python.org/pypi/ldap3)
以前,我使用python-ldap和python2来验证这样的用户:
import ldap
address = "ldap://HOST:389"
con = ldap.initialize(address)
base_dn = "ourDN=jjj"
con.protocol_version = ldap.VERSION3
search_filter = "(uid=USERNAME)"
result = con.search_s(base_dn, ldap.SCOPE_SUBTREE, search_filter, None)
user_dn = result[0][0] # get the user DN
con.simple_bind_s(user_dn, "PASSWORD")
Run Code Online (Sandbox Code Playgroud)
这将正确返回(97, [], 2, [])正确的密码,并ldap.INVALID_CREDENTIALS使用不正确的密码引发绑定尝试.
ldap3在python3中使用我正在做以下事情:
from ldap3 import Server, Connection, AUTH_SIMPLE, STRATEGY_SYNC, ALL
s = Server(HOST, port=389, get_info=ALL)
c = Connection(s, authentication=AUTH_SIMPLE, user=user_dn, password=PASSWORD, check_names=True, lazy=False, client_strategy=STRATEGY_SYNC, raise_exceptions=True)
c.open()
c.bind()
Run Code Online (Sandbox Code Playgroud)
它引发了以下异常:
ldap3.core.exceptions.LDAPInvalidCredentialsResult: LDAPInvalidCredentialsResult - …Run Code Online (Sandbox Code Playgroud) 我有一些模型,我想从这些数据生成一个多选形式.因此,表单将包含每个类别的条目,选择将是该类别中的技能.
models.py
class SkillCategory(models.Model):
name = models.CharField(max_length=50)
class Skill(models.Model):
name = models.CharField(max_length=50)
category = models.ForeignKey(SkillCategory)
Run Code Online (Sandbox Code Playgroud)
有没有办法自动生成表单字段?我知道我可以在每个SkillCategory的表单中手动添加"SkillCategory"条目,但将其作为模型的原因是技能和技能类别可以自由编辑.
我想做这样的事情:(我试过这个,但没有让它工作,不记得确切的错误...)
forms.py
class SkillSelectionForm(forms.Form):
def __init__(*args, **kwargs):
super(SkillSelectionForm, self).__init__(*args, **kwargs)
for c in SkillCategory.objects.all():
category_skills = [(pk, s.name) for s in c.skill_set.all()]
setattr(self, c.name, forms.MultipleChoiceField(choices=category_skills, widget=forms.CheckboxSelectMultiple))
Run Code Online (Sandbox Code Playgroud)
解
这将使用SkillCategory.name创建表单字段条目,并将选项分配为Skill中的选项.field_name/display_name用于避免非ascii 类别名称的问题.
forms.py
def get_categorized_skills():
skills = {}
for s in Skill.objects.values('pk', 'name', 'category__name').order_by('category__name'):
if s['category__name'] not in skills.keys():
skills[s['category__name']] = []
skills[s['category__name']].append((s['pk'], s['name']))
return skills
class SkillSelectionForm(forms.Form):
def __init__(self, *args, **kwargs):
super(SkillSelectionForm, self).__init__(*args, **kwargs)
skills …Run Code Online (Sandbox Code Playgroud) 就像在python中一样,我们有pass语句.
def calcu():
pass
在Lua有这样的声明吗?我想要做
if connect then
pass
我正在开发一个带有.Net(C++)团队的应用程序,并提供一个COM接口来与python和其他语言进行交互.
我们发现通过COM推送数据的速度非常慢.
我考虑了几种选择:
根据您的经验,传递数据的最佳方式是什么?
我正在尝试处理二进制格式,遵循以下示例:
http://dabeaz.blogspot.jp/2009/08/python-binary-io-handling.html
>>> from ctypes import *
>>> class Point(Structure):
>>> _fields_ = [ ('x',c_double), ('y',c_double), ('z',c_double) ]
>>>
>>> g = open("foo","rb") # point structure data
>>> q = Point()
>>> g.readinto(q)
24
>>> q.x
2.0
Run Code Online (Sandbox Code Playgroud)
我已经定义了我的标题的结构,我正在尝试将数据读入我的结构,但我遇到了一些困难.我的结构是这样的:
class BinaryHeader(BigEndianStructure):
_fields_ = [
("sequence_number_4bytes", c_uint),
("ascii_text_32bytes", c_char),
("timestamp_4bytes", c_uint),
("more_funky_numbers_7bytes", c_uint, 56),
("some_flags_1byte", c_byte),
("other_flags_1byte", c_byte),
("payload_length_2bytes", c_ushort),
]
Run Code Online (Sandbox Code Playgroud)
该ctypes的文档说:
对于像c_int这样的整数类型字段,可以给出第三个可选项.它必须是一个小的正整数,用于定义字段的位宽.
因此,("more_funky_numbers_7bytes", c_uint, 56),我试图将字段定义为7字节字段,但我收到错误:
ValueError:位字段无效的位数
所以我的第一个问题是,如何定义一个7字节的int字段?
然后,如果我跳过该问题并注释掉"more_funky_numbers_7bytes"字段,结果数据将被加载...但正如预期的那样,只有1个字符被加载到"ascii_text_32bytes"中.由于某种原因16,我假设返回的是它读入结构的计算字节数...但如果我正在评论我的"时髦数字"字段而"ascii_text_32bytes"只给出一个字符(1字节),不应该是13,而不是16 ???
然后我尝试将char字段分解为一个单独的结构,并从我的Header结构中引用它.但那也不起作用......
class StupidStaticCharField(BigEndianStructure):
_fields_ = [ …Run Code Online (Sandbox Code Playgroud) python ×9
django ×2
c ×1
com ×1
ctypes ×1
django-admin ×1
django-forms ×1
geodjango ×1
ldap ×1
ldap3 ×1
lua ×1
mapping ×1
openlayers ×1
pandas ×1
pip ×1
plot ×1
python-3.x ×1
virtualenv ×1
winapi ×1
windows ×1