小编Rol*_*Bly的帖子

列出Python中的依赖项

列出在其他地方部署工作项目所需的所有依赖项(比如说在不同的操作系统上)的最有效方法是什么?

Python 2.7,Windows开发环境,不是每个项目使用virtualenv,而是全局开发环境,根据需要安装库,愉快地从一个项目跳到下一个项目.

我已经跟踪了我必须为给定项目安装的大多数(不确定所有)库.我没有跟踪自动安装它们的任何子依赖项.做pip freeze列表,以及所有其他已安装的库.

有没有办法列出您需要安装的内容,不多也不少,以便部署项目?

注意:无法想象这已经没有Q + A,但我找不到它.

编辑鉴于以下答案,一些澄清.我的项目由一堆模块(我写的)组成,每个模块都有一堆imports.我是否应该将所有模块中的所有导入复制粘贴到一个文件中,排序消除重复,并从标准库中丢弃所有(以及我怎么知道它们)?或者,还有更好的方法?这就是问题所在.

python

30
推荐指数
4
解决办法
3万
查看次数

以用户身份存储守护程序的pid文件

是否存在为以用户身份运行的守护程序存储pid文件的首选位置?/ var/run是标准位置,但这适用于用户守护程序,因此它没有写入权限.据推测,我的守护进程将从.profile或.bashrc或其他东西开始.只是把它保存到/ tmp一个坏主意?

linux daemon pid

12
推荐指数
2
解决办法
8474
查看次数

解释strace输出

使用strace可以看到ioctl调用特定文件描述符和某些命令.第三个参数是结构,但strace将其显示为指向内存的原始指针.strace输出示例:

open("/dev/node", O_RDWR) = 3
ioctl(3, 0x108, 0x8f0eb18) = 0
close(3)  
Run Code Online (Sandbox Code Playgroud)

有没有办法(strace选项或其他工具)来查看结构是什么,或者至少是原始指针背后的值?

c reverse-engineering strace

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

Python计算dict值中的项目是列表

Python 3.3,这种形式的键值对字典.

d = {'T1': ['eggs', 'bacon', 'sausage']}
Run Code Online (Sandbox Code Playgroud)

值是可变长度的列表,我需要迭代列表项.这有效:

count = 0
for l in d.values():
   for i in l: count += 1
Run Code Online (Sandbox Code Playgroud)

但它很难看.必须有更多的Pythonic方式,但我似乎无法找到它.

len(d.values()) 
Run Code Online (Sandbox Code Playgroud)

产生1.它是1个列表(DUH).从这里尝试使用计数器会产生"不可用类型"错误.

python dictionary list count python-3.3

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

如何在Flask中制作RadioField?

我有一个带有TextField,FileField的表单,我想添加一个RadioField.

我想要一个有两个选项的无线电领域,用户只能选择一个.我正在关注前两个有效的形式示例.

我的forms.py看起来像这样

    from flask import Flask, request
    from werkzeug import secure_filename
    from flask.ext.wtf import Form, TextField, BooleanField, FileField, file_required,         RadioField
    from flask.ext.wtf import Required
    class ImageForm(Form):
        name = TextField('name', validators = [Required()])
        fileName = FileField('fileName', validators=[file_required()])
        certification = RadioField('certification', choices = ['option1', 'option2'])
Run Code Online (Sandbox Code Playgroud)

在我的views.py文件中

form = myForm()
if form.validate_on_submit():
    name = form.name.data
    fileName = secure_filename(form.fileName.file.filename)
    certification = form.certification.data
Run Code Online (Sandbox Code Playgroud)

在我的.html文件中

     {% block content %}
     <h1>Simple Form</h1>
     <form action="" method="post" name="simple" enctype="multipart/form-data">
         {{form.hidden_tag()}}
         <p>
             Name:
             {{form.name(size=80)}}
         </p>
         <p>
             Upload a file …
Run Code Online (Sandbox Code Playgroud)

python flask python-2.7 flask-wtforms

9
推荐指数
2
解决办法
2万
查看次数

正确的守护进程行为(来自PEP 3143)解释

我在Python中有一些[对我的RPi]的任务涉及很多sleep事情:做一些需要一两秒钟或三秒钟的事情,然后等待几分钟或几小时.我希望在睡眠时间内将控制权传递给操作系统(Linux).为此,我应该躲避那些任务.一种方法是使用Python的标准守护程序进程库.

但守护进程并不那么容易理解.根据PEP 3143的基本原理段落,表现良好的守护进程应该执行以下操作.

  • 关闭所有打开的文件描述符.
  • 更改当前工作目录.
  • 重置文件访问创建掩码.
  • 在后台运行.
  • 与进程组脱离关联.
  • 忽略终端I/O信号.
  • 与控制终端解除关联.
  • 不要重新获取控制终端.
  • 正确处理以下情况:
    • 由System V init进程启动.
    • 守护进程终止SIGTERM信号.
    • 儿童产生SIGCLD信号.

对于像我这样的Linux/Unix新手,其中一些不是解释.但我想知道为什么我做我做的事.那么这个理由背后的理由是什么?

python linux daemons

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

在Python中,为什么提升到均匀功率的负数仍然是负数?

在Python中

>>> i = 3  
>>> -i**4  
-81
Run Code Online (Sandbox Code Playgroud)

为什么-i**4不被评估为(-i)**4,但是-(i**4)

我想有人可能会争辩说,提升到一个权力优先于(隐含)乘以i减一(即你应该阅读-1*i**4).但是在那里我学到的数学,-i**nn连和i积极的,应该站出来正面.

python operator-precedence

8
推荐指数
2
解决办法
3149
查看次数

带有变音符号和连字的Python 3正则表达式,

表格中的名字:Ceasar,Julius将分为First_name Julius姓氏Ceasar.

名称可能包含变音符号(áàé..)和连字符(æ,ø)

这段代码似乎在Python 3.3中运行正常

import re

def doesmatch(pat, str):  
    try: 
        yup = re.search(pat, str)
        print('Firstname {0} lastname {1}'.format(yup.group(2), yup.group(1)))
    except AttributeError:
        print('no match for {0}'.format(str))

s = 'Révèrberë, Harry'
t = 'Åapö, Renée'
u = 'C3po, Robby'
v = 'Mærsk, Efraïm'
w = 'MacDønald, Ron'
x = 'Sträßle, Mpopo'

pat = r'^([^\d\s]+), ([^\d\s]+)'
# matches any letter, diacritic or ligature, but not digits or punctuation inside the () 

for i in s, t, u, v, w, x:
    doesmatch(pat, i) …
Run Code Online (Sandbox Code Playgroud)

python regex diacritics

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

在Python中循环到任意精度的有效方法

什么是以下的Pythonic解决方案?

我正在读一个分辨率为.5的温度传感器.我需要写入它(它具有可编程恒温器输出),也具有.5分辨率.

所以我编写了这个函数(Python 2.7)来将一个浮点数作为输入舍入到最接近的.5:

def point5res(number):
    decimals = number - int(number)
    roundnum = round(number, 0)
    return roundnum + .5 if .25 <= decimals < .75 else roundnum

print point5res (6.123)

print point5res(6.25)

print point5res(6.8)
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,分别输出6.0,6.5和7.0.这就是我想要的.

我对Python比较陌生.这条线

return roundnum + .5 if .25 <= decimals < .75 else roundnum
Run Code Online (Sandbox Code Playgroud)

让我对它的实施者表示钦佩.但它是Pythonic吗?

编辑:自发布以来,我学到了更多关于什么是'Pythonic'的内容.我的代码不是.Cmd的下面是.谢谢!

python if-statement

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

Robocopy - 排除很多目录

我有robocopy的问题.我想用它来备份系统光盘,我想排除一些系统文件夹.但它仍在尝试复制其中一些文件夹.我的批处理文件是这样的:

robocopy c:\ l:\C\ /r:1 /w:1 /mir /dcopy:T /xjd /xjf /xj /copy:DT /log+: l:\RobocopyLogC.txt /xf "desktop.ini" /xd "$Recycle.Bin" /xd Config.Msi /xd MSOCache/xd Recovery /xd "System Volume Information" /xd Windows /xd "Program Files\Common Files" /xd "Program Files\Internet Explorer" /xd "Program Files\Reference Assemblies" /xd "Program Files\Uninstall Information" /xd "Program Files\Microsoft Analysis Services" /xd "Program Files\Microsoft Mouse and Keyboard Center" /xd "Program Files\Microsoft Office" /xd "Program Files\Microsoft Silverlight" /xd "Program Files\MSBuild" /xd "Program Files\Windows Defender" /xd "Program Files\Windows Journal" /xd "Program Files\Windows Mail" …
Run Code Online (Sandbox Code Playgroud)

robocopy

7
推荐指数
2
解决办法
4万
查看次数