Articles of python

我已经安装了虚拟环境psycopg2,但仍然得到import商错误psycopg2

我遵循以下步骤:[我正在使用Windows 8,Python 2.7.6] 我创build了一个虚拟环境venv,然后在requirements.txt上安装pip来安装所有库。 我不得不显式创build一个名为config.py的文件来设置os.environvariables。 然后,我在其他文件中进行导入configuration。 我已经安装postgresql并将bin文件夹添加到环境path psycopg2无法从运行requirements.txt安装。 所以,我从网上下载了setup.py的zip文件,在virtial环境下运行setup.py。 后来当我在虚拟环境中做“pip install psycopg2”时,它表示需求已经满足了。 现在我跑了venv / Scripts / .py并得到以下错误: Traceback (most recent call last): File "remote-alert.py", line 5, in <module> from database import db_session File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\databa se.py", line 12, in <module> isolation_level="READ UNCOMMITTED" ) File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\venv\l ib\site-packages\sqlalchemy\engine\__init__.py", line 344, in create_engine return strategy.create(*args, **kwargs) File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\venv\l ib\site-packages\sqlalchemy\engine\strategies.py", […]

你如何设置你的pythonpath在一个已经创build的virtualenv?

我可以编辑什么文件,以及如何? 我创build了一个虚拟环境。

具有隐藏窗口的跨平台子stream程

我想在后台打开一个进程并与之交互,但是这个进程在Linux和Windows中都应该是不可见的。 在Windows中,你必须使用STARTUPINFO来做一些事情,而这在Linux中是无效的: ValueError:startupinfo仅在Windows平台上受支持 有没有比每个操作系统创build一个单独的Popen命令更简单的方法? if os.name == 'nt': startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW proc = subprocess.Popen(command, startupinfo=startupinfo) if os.name == 'posix': proc = subprocess.Popen(command)

多处理启动太多的Python VM实例

我正在编写一些多进程代码(Python 2.6.4,WinXP),它产生进程来运行后台任务。 在玩弄一些微不足道的例子时,我遇到了一个问题,即我的代码只是不断产生新的进程,即使我只是告诉它产生一个固定的数字。 程序本身运行良好,但如果我在Windows TaskManager中看,我不断看到新的“python.exe”进程出现。 随着程序运行,他们只是越来越多地产卵(最终使我的机器挨饿)。 例如, 我期望下面的代码启动2 python.exe进程。 第一个是程序本身,第二个是它产生的subprocess。 任何想法我做错了什么? import time import multiprocessing class Agent(multiprocessing.Process): def __init__(self, i): multiprocessing.Process.__init__(self) self.i = i def run(self): while True: print 'hello from %i' % self.i time.sleep(1) agent = Agent(1) agent.start()

为什么我不能在Python中处理KeyboardInterrupt?

我正在编写窗口上的Python 2.6.6代码,看起来像这样: try: dostuff() except KeyboardInterrupt: print "Interrupted!" except: print "Some other exception?" finally: print "cleaning up…." print "done." dostuff()是一个永久循环的函数,每次从inputstream中读取一行并对其执行操作。 我想要能够阻止它,并清理时,我按Ctrl-C。 发生了什么事情, except KeyboardInterrupt:的代码根本没有运行。 唯一被打印的是“清理…”,然后回溯打印,看起来像这样: Traceback (most recent call last): File "filename.py", line 119, in <module> print 'cleaning up…' KeyboardInterrupt 所以,exception处理代码没有运行,traceback声称在finally子句中发生了KeyboardInterrupt,因为按下ctrl-c是没有意义的,这就是导致该部分首先运行的原因! 即使是通用的except:子句也没有运行。 编辑:基于评论,我用sys.stdin.read()replace了try:块的内容。 问题仍然如上所述发生, finally:块的第一行运行,然后打印相同的回溯。 编辑#2:如果我添加几乎任何东西后读,处理程序的作品。 所以,这失败了: try: sys.stdin.read() except KeyboardInterrupt: … 但是这个工作: try: sys.stdin.read() […]

在Windows上列出串行(COM)端口?

我正在寻找一种可靠的方式来列出Windows机器上的可用串行(COM)端口。 这里有关于使用WMI的这篇文章 ,但是我想要less一些特定于.NET的东西 – 我想在没有.NET的情况下获取Python或C ++程序中的端口列表。 我目前知道另外两种方法: 读取HARDWARE\\DEVICEMAP\\SERIALCOMMregistry项中的信息。 这看起来像一个很好的select,但它是强大的 ? 我不能在网上或MSDN中find一个保证,这个registry单元确实总是保存可用端口的完整列表。 尝试调用COMN CreateFile N从1到某个数字。 这不够好,因为一些COM端口没有被命名为COMN。 例如,一些创build的虚拟COM端口被命名为CSNA0,CSNB0等等,所以我不会依赖这个方法。 任何其他方法/想法/经验分享? 编辑:顺便说一下,这是一个简单的Python实现从registry读取端口名称: import _winreg as winreg import itertools def enumerate_serial_ports(): """ Uses the Win32 registry to return a iterator of serial (COM) ports existing on this computer. """ path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM' try: key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path) except WindowsError: raise […]

使用Python修改Windows快捷方式

你如何改变使用Python的Windows快捷方式? 例如来自: H:\My Music\some_file.mp3 至: D:\Users\Myself\My Music\some_file.mp3

简单的GUI与图像

我试图在简单的GUI上显示一些卡片,但没有显示出来。 我已经上传了一个工作文件,上传了.gif文件,代码非常接近但不正确。 http://www.filedropper.com/cardgameproblem大小:0Kb,types:.zip 包含1个.py和1个.gif 要看的线路在257-266开始。 我知道这只是一个小错误,但我看不到。 请帮忙

通过Google Cloud SDK更新后无法启动appengine应用程序

最近,我通过使用Windows 7 64位命令gcloud components update ,通过谷歌云SDK从1.9.17更新到谷歌引擎 1.9.18。 之后,我无法启动appengine发射器中的任何项目。 得到这个错误: Traceback (most recent call last): File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 83, in <module> _run_file(__file__, globals()) File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 79, in _run_file execfile(_PATHS.script_file(script_name), globals_) File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 36, in <module> from google.appengine.tools.devappserver2 import dispatcher File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\dispatcher.py", line 29, in <module> from […]

在Windows机器上的IPython控制台中进行多处理 – if __name_要求

我正在Windows机器上使用IPython和Spyder IDE。 当IDE启动时,会加载一组py文件来定义一些使我的工作更轻松的function。 一切都按预期工作。 现在我想升级其中的一个函数来使用多处理,但在Windows上,这需要if __name__ == "__main__":语句。 所以看起来我不能直接调用函数,并从IPython控制台传递参数。 例如,其中一个py文件(我们称之为test.py)可能看起来像下面的代码。 import multiprocessing as mp import random import string # define a example function def rand_string(length, output): """ Generates a random string of numbers, lower- and uppercase chars. """ rand_str = ''.join(random.choice( string.ascii_lowercase + string.ascii_uppercase + string.digits) for i in range(length)) output.put(rand_str) def myFunction(): # Define […]