小编eas*_*de5的帖子

为什么我需要在python中指定要导入的特定类?

我刚刚升级到Python 2.7.1(在Mac上),所以我可以使用OrderedDicts.

尝试运行以下脚本后:

import collections

test = OrderedDict()
Run Code Online (Sandbox Code Playgroud)

我有:

NameError: name 'OrderedDict' is not defined
Run Code Online (Sandbox Code Playgroud)

我修复它:

from collections import OrderedDict
Run Code Online (Sandbox Code Playgroud)

......但我想知道为什么我需要这样做?

为什么广泛的import collections工作不适合我?

python

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

uwsgi + python + nginx + willy nilly文件执行

我在Nginx上使用uwsgi来运行一些Python代码.

我想将uwsgi绑定到一个目录并使其呈现我从浏览器中的服务器调用的任何.py文件.我在想PHP,这里(/index.php执行该文件,/ login.php执行该文件).

这有可能吗?或者我只能在uwsgi中明确指定单个模块/ app /文件?

这是我的init语法:

/opt/uwsgi/uwsgi -s 127.0.0.1:9001 -M 4 -t 30 -A 4 -p 4 -d /var/log/uwsgi.log --pidfile /var/run/uwsgi.pid --pythonpath /srv/www
Run Code Online (Sandbox Code Playgroud)

我认为这将允许/srv/www充当执行任何.py文件的文件夹.

这是我的nginx配置:

server {
    listen       80;
    server_name  DONT_NEED_THIS;

    access_log  /srv/www/logs/access.log;
    error_log   /srv/www/logs/error.log;

    location / {
        root  /srv/www;

        # added lines    
        include        uwsgi_params;
        uwsgi_pass     127.0.0.1:9001;

    }
Run Code Online (Sandbox Code Playgroud)

就目前而言,当我尝试调用web root(即www.site.com/)时,我得到一个:

wsgi application not found
Run Code Online (Sandbox Code Playgroud)

使用以下index.py文件:

import sys
import os

sys.path.append(os.path.abspath(os.path.dirname(__file__)))

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))] …
Run Code Online (Sandbox Code Playgroud)

python nginx uwsgi

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

是否有一个python数据结构:键控,有序和可通过键和顺序寻址?

我正在寻找一个混合了OrderedDict但也可以通过整数寻址的数据结构,具体取决于添加元素的时间.

config_key = OrderedDict([('Version_Number', 'a'),
                ('Hardware_Config', 'b'),
                ('Size_Of_Data', 'c'),
                ('Checksum', 'd')])
Run Code Online (Sandbox Code Playgroud)

这将起到如下作用:

>> print config_key['Version_Number']
a
>> print config_key[0]
a
>> print config_key['Size_Of_Data']
c
>> print config_key[2]
c
>> for x in config_key:
>>  print x
Version_Number
Hardware_Config
Size_Of_Data
Checksum
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python data-structures

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

如何在不丢弃缩进的情况下优雅地在Python中实现版本检查?

我想非常优雅地在Python中集成版本检查.

但是,我不希望版本检查例程抛弃我所有代码的缩进.

if old_version:
   print 'hey, upgrade.'
else:
  # main body of whole script
Run Code Online (Sandbox Code Playgroud)

在上面的实现中,整个脚本的主体需要缩进一个级别,这只是凌乱.

有没有更好的办法?

python

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

为什么我会得到"不兼容的指针类型"?

我正在尝试创建一个自定义对象,它只是继承NSString类并覆盖'description'方法.

然而,当我编译时,我收到一个警告:

不兼容的指针类型使用类型为"NSString*"的表达式初始化"OverrideTester*"

这是我的代码:

的main.m

#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSAutoreleasePool.h>
#import "OverrideTester.h"

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString *str = @"Programming is fun";
    OverrideTester *strOverride = @"Overriding is fun";

    NSLog (@"%@", str);
    NSLog (@"%@", strOverride);

    [pool drain];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

OverrideTester.h

#import <Foundation/Foundation.h>

@interface OverrideTester : NSString
-(void) description;
@end
Run Code Online (Sandbox Code Playgroud)

OverrideTester.m

#import "OverrideTester.h"

@implementation OverrideTester

-(void) description

{
    NSLog(@"DESCRIPTION!\n");
}

@end
Run Code Online (Sandbox Code Playgroud)

compiler-errors objective-c foundation

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

我怎么能让这个程序更优雅?

我有一个伺服控制器正在移动物体越来越接近传感器,试图触发它.

我希望距离 15.5 开始.但是,在每次迭代中,我希望它减小距离.1,直到传感器触发.为方便起见,我想退出while循环,并将变量$ currentHeight设置为此触发高度,因此我将减量行放在循环的beignning处.

但是,我必须在while循环之前对15.6起始点进行硬编码,以便它在循环的第一行中减少到15.5.

这似乎并不优雅.关于如何修饰它的任何建议?顺便说一句,对于你所有的老学校和晦涩的程序员来说,这是Tcl.;)

码:

set currrentDistance 15.6
set sensorStatus 4

while {$sensorStatus == 1)} {
    set currentDistance [expr $currentDistance - .1]
    moveServo $currentHeight
    set sensorStatus [watchSensor 2]
}
Run Code Online (Sandbox Code Playgroud)

tcl

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

使用awk捕获多行输出的第一行?

我有这个输出,这是运行匹配fcgi的grep的所有进程的PID:

# ps ax | grep fcgi | cut -f1 -d' '
21065
21066
21067
21068
21069
21070
24801
Run Code Online (Sandbox Code Playgroud)

我想删除第一个数字(即21065),这样我就可以将它传递给kill函数来终止父进程(父进程作为第一个PID返回).

关于如何做到这一点的任何想法?

bash scripting awk system-administration sed

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