小编Ser*_* jr的帖子

Python setuptools/distutils使用Makefile定制构建`extra`包

序言: Python setuptools用于包分发.我有一个Python包(让我们称之为my_package),它有几个extra_require包.一切工作只是找到(安装和构建包,以及额外的,如果被要求),因为所有extra_require都是python包本身和pip正确解决了一切.一个简单的pip install my_package工作就像一个魅力.

设置: 现在,对于其中一个附加内容(让我们称之为extra1),我需要调用非python库的二进制文件X.

模块X本身(源代码)已添加到my_package代码库中,并包含在发行版中my_package.遗憾的是,要使用,X需要首先在目标机器上编译成二进制文件(C++实现;我假设这样的编译将在my_package安装的构建阶段进行).有一个MakefileX不同的平台的编译优化库,使所有需要的,是运行make在各自的目录X库的my_package构建过程中运行时.

问题1:如何make使用setuptools/distutils在包的构建过程中运行终端命令(即在我的情况下)?

问题2:如何确保只有extra1在安装过程中指定了相应的终端命令才能执行?

例:

  1. 如果有人运行pip install my_package,则不会发生这种额外的库编译X.
  2. 如果有人运行pip install my_package [extra1],则X需要编译模块,因此将在目标计算机上创建并提供相应的二进制文件.

python makefile python-install python-packaging

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

django-celery-email任务未执行

有点卡住解决异步电子邮件发送的问题.我想用芹菜和django数据库作为后端.因为目前我唯一想使用这个队列管理工具的是电子邮件,我也安装了django-celery-email.

按照说明,我对我的设置文件进行了这样的更新:

import djcelery
djcelery.setup_loader()

INSTALLED_APPS += ('kombu.transport.django',
                   'djcelery',
                   'djcelery_email')

BROKER_URL = 'django://'
EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
Run Code Online (Sandbox Code Playgroud)

我正在使用默认的django SMTP这样的设置:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'cs*****@gmail.com'
EMAIL_HOST_PASSWORD = '*********'
EMAIL_PORT = 587
Run Code Online (Sandbox Code Playgroud)

我确实为这两个djcelerykomby应用程序运行了迁移.现在,使用默认的django send_mail核心方法,不会发送电子邮件.

如果删除EMAIL_BACKEND选项,电子邮件发送工作,但非常慢.如果不是速度,我不会首先考虑排队这个过程.

我使用MySQL数据库作为数据库后端,并且它的错误日志文件在添加任务时没有显示任何内容,所以我假设,那部分没问题.在我看来,我错过了一些基本的安装或配置部分,可以很容易地被经验丰富的芹菜或djcelery用户发现,但像我这样的新手可能会错过.

更新 django shell解决方法:

>>> from django.core.mail import send_mail
>>> from django.conf import settings
>>> result = send_mail('test send', 'test_send_body_text', settings.EMAIL_HOST_USER,    'hornswf@gmail.com')
>>> result[0].status
u'PENDING'
>>> result[0].ready()
False
>>> result[0].failed()
False
>>> result[0].info
>>> result[0].result …
Run Code Online (Sandbox Code Playgroud)

python django django-celery

8
推荐指数
1
解决办法
2284
查看次数

Django按照模型日期时间字段中指定的时间执行任务

我相信有一个简单的问题,但无论如何它都让我卡住了.

说我有一个简单的模型:

class myModel(models.Model):
    expires = models.DateTimeField(...)
Run Code Online (Sandbox Code Playgroud)

我希望,在指定的时间说一些事情:发送电子邮件,删除模型,更改一些模型字段......某事.django核心中有工具,允许我这样做吗?

或者,如果没有,我认为一些任务排队工具可能是有序的.我已经djcelery在我的项目中工作,虽然我是一个完全新手,而我迄今为止所能执行的只是运行django-celery-email包,以便异步发送我的邮件.虽然我不能说我完全有能力定义任务和工人在后台工作并且可靠.

如果有任何想法,关于如何解决这样的问题,请不要犹豫=)

python django django-models django-celery

5
推荐指数
1
解决办法
2751
查看次数

Java ExecutorService堆空间问题

我有一个Java多线程问题.我有以下工人阶级:

public class ThreadWorker implements Runnable {

    //some code in here

    public void run(){
      // invokes some recursion method in the ThreadWorker itself,
      // which will stop eventually
    {
}
Run Code Online (Sandbox Code Playgroud)

要使用线程我正在使用ExecutorService:

public static int THREAD_NUMBER = 4;
public static ExecutorServide es = Executors.newFixedThreadPool(THREAD_NUMBER);
Run Code Online (Sandbox Code Playgroud)

添加ThreadWroker类的实例发生在这里:

public void recursiveMethod(Arraylist<Integers> elements, MyClass data){
     if (elements.size() == 0 && data.qualifies()){
         ThreadWorker tw = new ThreadWorker(data);
         es.execute(tw);
         return;
     }



     for (int i=0; i< elements.size(); i++){
          // some code to prevent my …
Run Code Online (Sandbox Code Playgroud)

java multithreading exception executorservice

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

传递kwargs反向观看; django 1.5

作为django首发,我有一点问题需要处理:

HTML代码:

<li><a href="{% url 'dyn_display' category='first'%}">first</a></li>
<li><a href="{% url 'dyn_display' category='second'%}">second</a></li>
<li><a href="{% url 'dyn_display' category='third'%}">third</a></li>
Run Code Online (Sandbox Code Playgroud)

urlconf.py

url(r'(?P<category>[a-z]+)$', 'display', name='dyn_display')
Run Code Online (Sandbox Code Playgroud)

view.py

def courses_display(request, category):
    return render_to_response('display/basic.html', {category: 'in'}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

最后是basic.html的一部分,所以你可以想一想为什么我需要那个类别变量

basic.html

<div class="accordion" id="accordion2">
    <div class="accordion-group">
        <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseFirst">
                <strong>First</strong>
            </a>
        </div>
        <div id="collapseFirst" class="accordion-body collapse {{ first }}">
             <div class="accordion-inner">
                 ...
             </div>
         </div>
     </div>
     <div class="accordion-group">
         <div class="accordion-heading">
             <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseSecond">
                 <strong>Second</strong>
             </a>
         </div>
         <div id="collapseSecond" class="accordion-body collapse {{ second }}">
             <div …
Run Code Online (Sandbox Code Playgroud)

python django

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

Python和lambda函数

可能看起来像一个不起眼的问题(myabe),但为什么python表现得那样:

>>>a = []
>>>for i in xrange(5):
...    a.append(lambda: i + 1)

>>>a[0]()
5
>>>a[1]()
5
>>>a[2]()
5
>>>a[3]()
5
>>>a[4]()
5
Run Code Online (Sandbox Code Playgroud)

当存在不同的功能时:

>>aaa
[<function <lambda> at 0x100499d70>, <function <lambda> at 0x100499e60>, <function <lambda> at 0x100499ed8>, <function <lambda> at 0x100499de8>, <function <lambda> at 0x10049f050>]
Run Code Online (Sandbox Code Playgroud)

或者我错过了python文档中真正重要的东西?

python lambda python-2.7

1
推荐指数
1
解决办法
116
查看次数