小编war*_*iuc的帖子

shebang线不工作

不知道我的shebang线有什么问题:

vic@ubuntu:~/Desktop$ ./test.py 
: No such file or directory

vic@ubuntu:~/Desktop$ ls -l
...
-rwxr-xr-x  1 vic vic        35 2011-11-06 15:46 test.py
...

vic@ubuntu:~/Desktop$ cat test.py 
#!/usr/bin/env python
print('!')

vic@ubuntu:~/Desktop$ /usr/bin/env python
Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

vic@ubuntu:~/Desktop$ head -n 2 test.py|hexdump -C
00000000  23 21 2f 75 73 72 2f 62  69 6e 2f 65 6e 76 20 70  |#!/usr/bin/env p|
00000010  79 …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu shebang

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

生成一致的人员数据

我想用Faker来生成一些测试数据。

但是我无法为单个用户生成一致的数据:

>>> from faker import Factory

>>> fake = Factory.create()

>>> fake.name()
>>> u'Tayshaun Corkery'

>>> fake.email()
>>> u'kaitlynn40@yahoo.com'
Run Code Online (Sandbox Code Playgroud)

如您所见,电子邮件并未反映之前生成的名称。文档说:

每次调用方法都会fake.name()产生不同的(随机)结果。这是因为 faker 将faker.Generator.method_name()调用转发到faker.Generator.format(method_name)

有没有办法在不编写大量额外代码的情况下生成一致的个人数据?

python

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

Python 中 Decimal 的子类化

我想在我的 Python 程序中使用 Decimal 类进行财务计算。小数不能与浮点数一起使用 - 它们需要首先显式转换为字符串。因此,我决定对 Decimal 进行子类化,以便能够在无需显式转换的情况下使用浮点数。

m_Decimal.py:

# -*- coding: utf-8 -*-
import decimal

Decimal = decimal.Decimal

def floatCheck ( obj ) : # usually Decimal does not work with floats
    return repr ( obj ) if isinstance ( obj, float ) else obj # this automatically converts floats to Decimal

class m_Decimal ( Decimal ) :
    __integral = Decimal ( 1 )

    def __new__ ( cls, value = 0 ) :
        return Decimal.__new__ ( cls, floatCheck …
Run Code Online (Sandbox Code Playgroud)

python decimal subclassing

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

在PyDev中启动并调试单个脚本

我是使用Eclipse和PyDev(Aptana Studio 3)的初学者.我不习惯,我不理解像Eclipse这样的大型IDE中的工作流程.

我有一个简单的任务:我有一个简单的Python脚本,我想在Eclipse中打开并运行,在Eclipse控制台中输出.或调试它.

到目前为止,我使用了另一个名为Eric4的 IDE ,它允许我按照自己的意愿行事 - 打开文件并立即运行,无需创建项目或设置启动配置.

这在Eclipse中是否可行,或者我必须为我想运行或调试的每个文件创建一个项目?我想了解它是如何工作的.

我想我明白至少需要创建一个项目来设置路径(PYTHONPATH),但是如果它是一个单独的脚本 - 默认情况下会以某种方式使用当前目录?

例如,我有一个文件夹snippets,其中我保留了很多python脚本,演示了一些功能.我如何逐个打开这些文件并运行它们?

我的大多数同事都在一个单独的控制台中启动python脚本 - python my_scipt.py.

eclipse pydev

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

如果第一个参数不是类,则 issubclass 引发异常

我正在开发一个 Python 应用程序,我需要多次检查对象是否是 DB 模型的子类。

我做了自己的功能来做到这一点:

def isModel(obj):
    return isinstance(obj, type) and issubclass(obj, Model)
Run Code Online (Sandbox Code Playgroud)

issubclass引发异常 obj is not a class,但我希望它只返回 False 如果obj不是一个类。

我认为最好制作另一个功能,而不是使用内置的issubclass

def _issubclass(obj, Klass):
    return isinstance(obj, type) and issubclass(obj, Klass)
Run Code Online (Sandbox Code Playgroud)

但是为什么内置issubclass不是这样制作的呢?什么原因?我错过了什么吗?


更新:

我有模型:

class BaseModel(object):
    id = Field(...)

class MyModel(BaseModel):
    deleted = Field(...)
Run Code Online (Sandbox Code Playgroud)

在一个函数中,我想检查一个参数是否是一个BaseModel

def update_model(model):
    assert isinstance(model, type) and issubclass(model, BaseModel), 'Must be a model'
Run Code Online (Sandbox Code Playgroud)

issubclass回答一个对象是否是给定类的子类的问题。如果对象是类实例,那么 IMO 的答案应该是“不,您的对象不是 BaseModel 子类,因为它根本不是类”。

在 Python 中是很正常的,而不是if something is not …

python

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

事务是否在SELECT上启动?

我在文档中读到:

...因为事务在游标执行查询时开始,但在Connection对象执行COMMIT或ROLLBACK时结束.

import MySQLdb

db = MySQLdb.connect(user="root", db="test")
c = db.cursor()
c.execute("SELECT * FROM books")
print c.fetchall()
Run Code Online (Sandbox Code Playgroud)

我怀疑MySQLdb甚至在不修改数据的查询(如SELECT)上启动事务,因为很难知道查询是否只读取数据而不写入数据.

  1. 这是真的吗?
  2. 如果是这样,这意味着我应该cursor.commit()在每次查询后执行,以确保没有表被锁定?
  3. 我不知道的其他问题?

谢谢

python mysql mysql-python

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

Eclipse中最近的文件数> 15?

有没有办法让最近的文件列表在Eclipse中保留15个以上的文件?

还是一个允许我查看更多内容的插件?

eclipse

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

Python psycopg2-记录事件

我正在使用psycopg2,并且在将事件(执行的查询,通知,错误)记录到文件时遇到问题。我想在PgAdmin历史记录窗口中获得效果。

例如,我正在执行以下查询:

insert into city(id, name, countrycode, district, population) values (4080,'Savilla', 'ESP', 'andalucia', 1000000)
Run Code Online (Sandbox Code Playgroud)

在PgAdmin中,我看到这样的效果:

Executing query: 
insert into city(id, name, countrycode, district, population) values (4080,'Sevilla', 'ESP', 'andalucia', 1000000)

Query executed in 26 ms.
One row affected.
Run Code Online (Sandbox Code Playgroud)

使用psycopg2可以获得类似的效果吗?

我尝试使用LoggingCursor,但对我来说并不令人满意,因为它仅记录查询。

感谢帮助。


编辑:

我的代码:

conn = psycopg2.extras.LoggingConnection(DSN)
File=open('log.log','a')
File.write('================================')
psycopg2.extras.LoggingConnection.initialize(conn,File)

File.write('\n'+time.strftime("%Y-%m-%d %H:%M:%S") + '---Executing query:\n\t')
q="""insert into city(id, name, countrycode, district, population) values (4080,'Sevilla', 'ESP', 'andalucia', 10000)"""
c=conn.cursor()
c.execute(q)
File.write('\n'+time.strftime("%Y-%m-%d %H:%M:%S") + '---Executing query:\n\t')
q="""delete from city where id = …
Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2 pgadmin

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

当Django从临时目录中删除上传的文件时?

根据文件:

但是,如果上传的文件太大,Django会将上传的文件写入存储在系统临时目录中的临时文件中.在类似Unix的平台上,这意味着你可以期待Django生成一个类似的文件/tmp/tmpzfp6I6.upload.如果上传足够大,您可以观看此文件的大小增长,因为Django将数据流式传输到磁盘上.

所以我已经将相同的大文件多次上传到视图中并得到了这个:

vic@vic /tmp $ ls -l tmp*.upload
-rw------- 1 vic vic2 3436110 ???   14 18:31 tmpKdZrQl.upload
-rw------- 1 vic vic2 3436110 ???   14 18:31 tmpqLyBsy.upload
Run Code Online (Sandbox Code Playgroud)

从临时目录中删除这些文件?

我想避免膨胀临时目录.

python django file-upload

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

pycrypto 安装:配置错误:无法运行 C 编译的程序

请对我温柔点。我已经搜索过该网站,我知道这个确切问题还有另一个答案,但是发布在那里的答案对我不起作用。

我正在尝试安装pycrypto,以便我可以开始paramiko工作。 Paramiko由于缺少pycrypto模块而失败。我试过使用pip install pycryptowhich 成功,但没有解决问题。

我试过安装二进制版本pycrypto,但没有解决问题。

现在我正在尝试构建pycrypto. 我有cygwin64mingw安装在我的机器上。最远的方法是

python setup.py build --compiler=mingw32
Run Code Online (Sandbox Code Playgroud)

这会出错,

checking whether we are cross compiling... configure: error: in `/cygdrive/c/Python27/pycrypto-2.6.1':
configure: error: cannot run C compiled programs.
Run Code Online (Sandbox Code Playgroud)

另一个答案建议删除路径中的空格。我曾尝试将路径简化为简单

c:\mingw;c:\python2.7;c:\cygwin64\bin
Run Code Online (Sandbox Code Playgroud)

结果没有改变?

有没有人可以指点我的解决方法?谢谢你。总体目标是开始paramiko工作。该paramiko错误是

ImportError: No module named Crypto.PublicKey
Run Code Online (Sandbox Code Playgroud)

python paramiko mingw32 pycrypto

5
推荐指数
3
解决办法
5079
查看次数