小编neu*_*ino的帖子

获取正在执行脚本的python二进制文件的路径

我有一个Pylons控制器(不相关但解释了为什么我有这个需要)说starter.py,启动另一个进程使用:

retcode = subprocess.call(('python','/path/to/myScript.py'))
Run Code Online (Sandbox Code Playgroud)

现在,因为应用程序在虚拟环境中运行python不是正确的二进制文件,因为它无法访问我的虚拟环境中安装的站点包.

它应该是:

retcode = subprocess.call(('path/to/virtual/env/bin/python','/path/to/myScript.py'))
Run Code Online (Sandbox Code Playgroud)

并且path/to/virtual/env/bin/python正在运行starter.py.

是否有机会不设置此路径(例如,在.ini文件中)并检索它?

python pylons virtualenv

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

imagemagick自动编号从1开始

我可以这样做批量调整大小并重命名子文件夹中的图像:

convert '*.jpg' -resize 256 small/image_%02d.jpg
Run Code Online (Sandbox Code Playgroud)

它将从...开始创建图像 image_00.jpg

我的问题是,由于外部服务的导入规则,我需要从中开始增量编号 image_01.jpg

IM允许吗?

否则哪种方式最明智?

ls反过来sort然后重命名添加1

linux shell imagemagick

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

python zipfile,我怎么知道一个项目是一个目录?

做这样的事情:

from zipfile import ZipFile

#open zip file
zipfile = ZipFile('Photo.zip')

#iterate zip contents
for zipinfo in zipfile.filelist:
    #do something
    filepath, filename = path.split(zipinfo.filename)
Run Code Online (Sandbox Code Playgroud)

我怎么知道zipinfo是文件还是目录?

感谢您的支持.

python zip

15
推荐指数
2
解决办法
4745
查看次数

用python编写的数学语法检查器

我需要的是使用python检查字符串是否是有效的数学表达式.

为简单起见,我想说我只需要数字和嵌套括号的运算+ - * /符(也+ -就是一元).我还为完整性添加了简单的变量名称.

所以我可以这样测试:

test("-3 * (2 + 1)") #valid
test("-3 * ")        #NOT valid

test("v1 + v2")      #valid
test("v2 - 2v")      #NOT valid ("2v" not a valid variable name)
Run Code Online (Sandbox Code Playgroud)

我尝试了pyparsing,但只是尝试了这个例子:"简单的代数表达式解析器,执行+,-,*,/^算术运算"我得到了无效的代码并且还试图修复它我总是得到错误的语法被解析而不会引发异常

试试:

>>>test('9', 9)
9 qwerty = 9.0 ['9'] => ['9']
>>>test('9 qwerty', 9)
9 qwerty = 9.0 ['9'] => ['9']
Run Code Online (Sandbox Code Playgroud)

两个测试通过... o_O

有什么建议?

python math syntax-checking

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

智能计算图表刻度位置

无论我使用matplotlib,Open-Flash-Charts还是其他图表框架,我总是需要找到一种方法来设置x/y比例限制和间隔,因为内置的智能不够(或根本没有...)

只是在pylab(ipyhton -pylab)中尝试这个来理解我的意思:

In [1]: a, b, x = np.zeros(10), np.ones(10), np.arange(10)

In [2]: plot(x, a); plot(x, b)
Run Code Online (Sandbox Code Playgroud)

你会看到正好和空的框架网格隐藏在其顶部和底部边框下面的2条水平线.

我想知道是否有一些算法(我可以移植到python)来设置聪明的顶部和底部y限制和步骤,并计算每个显示x厚度的值.

举例来说,假设我有475项措施,(datetime, temperature)(x, y)

2011-01-15 10:45:00 < datetime < 2011-01-17 02:20:00
Run Code Online (Sandbox Code Playgroud)

(每5分钟一次)和

26.5 < temperature < 28.3
Run Code Online (Sandbox Code Playgroud)

我对这个特例的建议可能是:

26.4 <= y_scale <= 28.4 每一个都厚 .2

并且x_scale每12个项目(每小时一次)打勾.

但是,如果我在20天内只有20项措施 -21.5 < temperature < 38.7,等等呢?有标准化的方法吗?

python math graph

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

塔架和金字塔的会话差异

作为Pylons用户,我正试图切换到金字塔,现在试图理解差异.

在Pylons中,我习惯于将Session定义myproj.model.meta为:

Session = scoped_session(sessionmaker())
Run Code Online (Sandbox Code Playgroud)

然后导入它myproj.model来定义模型,然后在app中引用:

root = Session.query(MyModel).filter(...)...
Run Code Online (Sandbox Code Playgroud)

现在使用Pyramid中的默认模板(pyramid_routesalchemy)我像以前一样定义Session(除了调用它DBSession并添加扩展名):

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Run Code Online (Sandbox Code Playgroud)

但在views.py我不直接使用它但实例化它:

dbsession = DBSession()
root = dbsession.query(MyModel).filter(...)...
Run Code Online (Sandbox Code Playgroud)

为什么?有什么区别?


而且,与金字塔有什么不同

import transaction
...
model = MyModel(name=u'root', value=55)
session.add(model)
session.flush()
transaction.commit()
Run Code Online (Sandbox Code Playgroud)

到Pylons

model = MyModel(name=u'root', value=55)
session.add(model)
session.commit()
Run Code Online (Sandbox Code Playgroud)

python session pylons sqlalchemy pyramid

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

epydoc AttributeError:'Text'对象没有属性'data'

我在过去的两年里没有使用过epydoc,但我发现用很少的努力来跟踪我的课程和方法非常方便.

今天我安装了最新版本,3.0.1但是我收到了这个错误并且四处搜索似乎没有提供解决方案.

Traceback (most recent call last):-] Parsing docstrings: pyramid.reques... 
  File "/home/neurino/apps/env/bin/epydoc", line 13, in <module>
    cli()
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/cli.py", line 965, in cli
    main(options, names)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/cli.py", line 757, in main
    exclude_parse=exclude_parse)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/docbuilder.py", line 275, in build_doc_index
    parse_docstring(val_doc, docindex, suppress_warnings)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/docstringparser.py", line 265, in parse_docstring
    api_doc.summary, api_doc.other_docs = api_doc.descr.summary()
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/markup/restructuredtext.py", line 179, in summary
    try: self._document.walk(visitor)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 137, in walk
    if child.walk(visitor):
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 129, in walk
    visitor.dispatch_visit(self)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 1604, …
Run Code Online (Sandbox Code Playgroud)

python epydoc

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

金字塔中基于动态用户的授权

我遵循Pyramid文档中的安全准则以及wiki教程添加授权

现在我需要添加基于非单个用户而不是组的限制.

例如,假设任何博客编辑者都有权审阅所有评论,那么只有帖子作者可以编辑帖子本身.

对于我将在根ACL中执行的第一项任务,如下所示:

__acl__ = [ (Allow, Everyone, 'view'),
            (Allow, Authenticated, 'view_profile'),
            (Allow, 'groups:editor', 'edit_comment')
]
Run Code Online (Sandbox Code Playgroud)

但是为什么edit_post呢?

我已经阅读了这个答案,但由于我不需要构建资源树,因此对我的需求似乎有些过分.

python authorization pyramid

6
推荐指数
2
解决办法
1975
查看次数

Sphinx autodoc集成了装饰属性

我开始使用Sphinx来记录我的sqlalchemy驱动的应用程序.

SA在属性操作中的一个典型用法是使用hybrid-property装饰器.

现在我的问题是我没有获得doc条目name:

class User(GeneralTable):
    '''User'''
    ...
    @hybrid_property
    def name(self):
        '''
        User name

        :rtype: unicode
        '''
        if self._name is None:
            return 'anonymous'
        else:
            return self._name

    @name.setter
    def name(self, name):
        '''
        :type name: unicode
        '''
        self._name = name
Run Code Online (Sandbox Code Playgroud)

hybrid_property改为标准时,property我会记录下来.

有没有办法扩展Sphinx采用hybrid_property相同的property行为?

我目前的解决方法是.. attribute::User类doc中添加一个名称条目.

python sqlalchemy properties decorator python-sphinx

6
推荐指数
0
解决办法
889
查看次数

在mod_wsgi部署的应用程序中拒绝文件写入权限

我正在尝试在Apache上使用mod_wsgi部署Pyramid应用程序.

我进入IOError: [Errno 13] Permission denied模板文件夹,即使我向任何人授予写入权限,mako 也会缓存他的模板.

如果我从我的ini文件中删除模板缓存,该网站运行完美.

我也尝试以拥有该文件夹的用户身份运行Apache,而不是www-data没有运气.

任何线索?

mod-wsgi pyramid

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