不知道我的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) 我想用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 程序中使用 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) 我是使用Eclipse和PyDev(Aptana Studio 3)的初学者.我不习惯,我不理解像Eclipse这样的大型IDE中的工作流程.
我有一个简单的任务:我有一个简单的Python脚本,我想在Eclipse中打开并运行,在Eclipse控制台中输出.或调试它.
到目前为止,我使用了另一个名为Eric4的 IDE ,它允许我按照自己的意愿行事 - 打开文件并立即运行,无需创建项目或设置启动配置.
这在Eclipse中是否可行,或者我必须为我想运行或调试的每个文件创建一个项目?我想了解它是如何工作的.
我想我明白至少需要创建一个项目来设置路径(PYTHONPATH),但是如果它是一个单独的脚本 - 默认情况下会以某种方式使用当前目录?
例如,我有一个文件夹snippets,其中我保留了很多python脚本,演示了一些功能.我如何逐个打开这些文件并运行它们?
我的大多数同事都在一个单独的控制台中启动python脚本 - python my_scipt.py.
我正在开发一个 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 …
我在文档中读到:
...因为事务在游标执行查询时开始,但在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)上启动事务,因为很难知道查询是否只读取数据而不写入数据.
cursor.commit()在每次查询后执行,以确保没有表被锁定?谢谢
我正在使用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) 根据文件:
但是,如果上传的文件太大,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)
从临时目录中删除这些文件?
我想避免膨胀临时目录.
请对我温柔点。我已经搜索过该网站,我知道这个确切问题还有另一个答案,但是发布在那里的答案对我不起作用。
我正在尝试安装pycrypto,以便我可以开始paramiko工作。 Paramiko由于缺少pycrypto模块而失败。我试过使用pip install pycryptowhich 成功,但没有解决问题。
我试过安装二进制版本pycrypto,但没有解决问题。
现在我正在尝试构建pycrypto. 我有cygwin64并mingw安装在我的机器上。最远的方法是
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 ×7
eclipse ×2
decimal ×1
django ×1
file-upload ×1
linux ×1
mingw32 ×1
mysql ×1
mysql-python ×1
paramiko ×1
pgadmin ×1
postgresql ×1
psycopg2 ×1
pycrypto ×1
pydev ×1
shebang ×1
subclassing ×1
ubuntu ×1