我希望在接下来的几天内打包并上传一个我有PyPI的库,但是我对我的命名空间方法有点不确定.
我有一些其他不相关的项目采用类似的方法,并希望给它们所有相同的命名空间.例如:
abc.seoabc.ajaxabc.ecommerce问题是我不确定两个独立的包(例如鸡蛋)是否可能与同一个父命名空间共存.这种方法有问题,还是有办法绕过它?什么是最好的方法?
这些库不应该打包在一起,它们太不相关了.我希望在上传之前能够正确使用它,以避免在进行"官方"发布后出现令人痛苦的命名空间更改.
(NB abc不是真名,我希望我的问题免于广告)
UPDATE
我选择了以下内容,以便在没有安装setuptools的情况下对人们友善:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
Run Code Online (Sandbox Code Playgroud)
具体如下setup.py:
setup(
...
namespace_packages = ['rollyourown'],
...
Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题,itertools.groupby用于分组查询集的元素.我有一个模特Resource:
from django.db import models
TYPE_CHOICES = (
('event', 'Event Room'),
('meet', 'Meeting Room'),
# etc
)
class Resource(models.Model):
name = models.CharField(max_length=30)
type = models.CharField(max_length=5, choices=TYPE_CHOICES)
# other stuff
Run Code Online (Sandbox Code Playgroud)
我的sqlite数据库中有几个资源:
>>> from myapp.models import Resource
>>> r = Resource.objects.all()
>>> len(r)
3
>>> r[0].type
u'event'
>>> r[1].type
u'meet'
>>> r[2].type
u'meet'
Run Code Online (Sandbox Code Playgroud)
因此,如果我按类型分组,我自然会得到两个元组:
>>> from itertools import groupby
>>> g = groupby(r, lambda resource: resource.type)
>>> for type, resources in g:
... print type
... for resource …Run Code Online (Sandbox Code Playgroud) 我需要matplotlib中的一个数字,其中两个轴的长度始终相同.为此,我使用"相等"选项.在大多数情况下,它工作得很好,我得到了预期的结果(见图1),但是当y轴的值远高于x时,该图显示了一个意外的行为(见图2).有谁知道matplotlib的这种行为?
Danke,Jörg
host = SubplotHost(fig, 111)
try:
min_x_val = min(x for x in self.x_values if x is not None)
max_x_val = max(self.x_values)
except ValueError:
return
max_y_val = list()
for n, evaluator in enumerate(self.cleaned_evaluators):
max_y_val.append(max(self.y_values[n]))
# axis settings
host.axis['left'].label.set_fontsize('small')
host.axis['left'].major_ticklabels.set_fontsize('small')
host.axis['bottom'].label.set_fontsize('small')
host.axis['bottom'].major_ticklabels.set_fontsize('small')
host.axis['bottom'].major_ticklabels.set_rotation(0)
host.set_ylabel(y_label)
host.set_xlabel(x_label)
host.set_xlim(0, max_x_val)
host.set_ylim(0, max_y_val)
host.minorticks_on()
host.toggle_axisline(False)
host.axes.set_aspect('equal')
host.grid(True, alpha=0.4)
return fig
Run Code Online (Sandbox Code Playgroud)
图1:

图2:
