目标: 当使用从各种python模块调用的公共实用程序函数时,访问/写入相同的临时文件.
背景: 我使用python Unittest模块来运行通过pySerial与仪器连接的自定义测试集.因为我使用的是unittest模块,所以我无法将所需的变量(例如要使用的串口)传递到unittest的测试用例中.为了解决这个问题,我想创建一个存储和返回pickle数据的模块.我遇到的问题是,当我从test_case_1()调用函数get_foo()时,它会尝试从基于test_case_1()的相对路径加载pickle数据,而不是包含get_foo()的实际模块.
值得注意的是,我已经考虑过使用全局变量,但是我希望从运行中保留一些数据.这意味着将关闭所有python模块,并且我想重新加载上一次执行时存储的数据.
我在SO问题:Python - 在使用代码库时如何引用资源的相对路径,我以为我在第一个答案中找到了解决方案.令我沮丧的是,这在Python 2.7(Debian)中对我不起作用
从不同模块调用时,是否有可靠的方法将路径返回到特定文件?
背景
我有一个简单的套接字服务器设置,我试图允许同时连接和回显数据.客户端启动多个线程,每个线程都与服务器建立自己的连接.这适用于socket.send()调用,但所有后续调用都会导致"由对等方重置连接"或"断开管道".请注意,我没有找到切换重置和损坏管道的更改.我在这里寻找解决方案,但恐怕我可能不知道该搜索什么.
我是以错误的方式解决这个问题,还是我在设置中忽略了什么?
服务器
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024).strip()
print "{} wrote: {}\n".format(self.client_address[0], self.data)
self.request.send(self.data.upper())
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
客户
import socket
import sys
import threading
import time
HOST, PORT = "localhost", 9999
def create_client():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
cur_thread = threading.current_thread()
sock.connect((HOST, PORT))
for x in range(55):
msg = "{}: {}\n".format(cur_thread.name, str(x))
# Connect to server and send data
print cur_thread.name + ": …Run Code Online (Sandbox Code Playgroud) 简短说明
使用本地 (sqlite3) 数据库我可以保存和提取信息,但是当使用我的生产服务器(在另一台机器上的 postgresql 8.4)时,Django 会抛出“无法适应类型”错误。有人可以帮我指出一个好的方向来开始调试吗?
背景
python 项目使用 Django 1.3 作为 ORM 到多个数据库(生产和调试)。多数据库连接适用于所有情况,但这种情况除外。在搜索 SO 和 Google 时,通过重新运行 syncdb 修复了大部分错误。我在我的生产和调试服务器上都这样做了,但仍然出现相同的错误。查看模型、访问器和修改器后,我看不出这个函数有什么不同。我已经包含了可疑函数、我的模型和错误消息。任何帮助将不胜感激。我很乐意发布所需的任何其他非敏感信息。
系统信息
* Postgresql 8.4 - Ubuntu 服务器
* Django 项目(客户端/用户)- Windows XP(如图所示)、Mac OSX、Windows 7(64 位)
* Python 2.7.1
* Psycopg2
* Django 1.3
模型.py
from django.db import models
# Create your models here.
class Card_Test(models.Model):
name = models.TextField(max_length=100)
description = models.TextField(max_length=200)
units = models.TextField(max_length=500)
result_tags = models.TextField(max_length=500)
def __unicode__(self):
return self.name
class Status_Type(models.Model):
status = models.CharField(max_length=25)
def __unicode__(self):
return …Run Code Online (Sandbox Code Playgroud) 简短问题
当右键单击文件(.c/.h/etc ..)并且TortoiseSVN菜单不存在时,是否有人遇到过问题?请注意,当我右键单击同一目录中的文件夹时,它就在那里.
尝试失败
我已经看到通过再次运行安装程序并选择repair或已经解决了许多此类问题modify,此时这些尝试都没有奏效.
还有什么我可以试着让这个再次起作用吗?DIFF功能的消失正在伤害一些激烈的东西.
编辑
我是唯一一个处理文件的开发人员.我实际上找到了一种方法来查看差异:移动父文件夹TortoiseSVN->检查修改.此菜单确实显示了我的所有版本文件以及任何已修改的文件.
我还确认通过在另一台机器上检出相同的repo,文件仍然是版本控制的.
Edit2
值得注意的是,我使用的是Macdrive,它的右键菜单一直存在.另外,我刚看到我和TortoiseGIT也有同样的问题.
我正在研究VS2010 Professional中的Visio Addin,我在调试应用程序时正在寻找热点(特别是在COM对象周围).我找到了许多可以分析现有.NET应用程序的分析器,但没有一个(我见过)支持调试.此外,因为这是一个.NET加载项而不是完整的独立可执行文件,所以我不确定它们是如何公平的.
我调查过的Profilers:
有没有人找到可以在VS2010调试会话期间使用的分析器?
python ×3
64-bit ×1
broken-pipe ×1
database ×1
debugging ×1
django ×1
path ×1
profiler ×1
profiling ×1
sockets ×1
socketserver ×1
tcp ×1
tortoisesvn ×1
unit-testing ×1
vb.net ×1
windows-7 ×1