小编Ada*_*wis的帖子

如何在不同模块导入时访问Python 2.7中的相对路径

目标: 当使用从各种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)中对我不起作用

从不同模块调用时,是否有可靠的方法将路径返回到特定文件?

python unit-testing path

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

为什么这个套接字连接只允许1个发送和接收?

背景
我有一个简单的套接字服务器设置,我试图允许同时连接和回显数据.客户端启动多个线程,每个线程都与服务器建立自己的连接.这适用于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)

python sockets tcp broken-pipe socketserver

4
推荐指数
1
解决办法
4679
查看次数

Django“无法适应类型”错误使用多个数据库(Postgresql 8.4 和 sqlite3)

简短说明
使用本地 (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)

python database django

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

选择文件时TortoiseSVN右键菜单消失了

简短问题
当右键单击文件(.c/.h/etc ..)并且TortoiseSVN菜单不存在时,是否有人遇到过问题?请注意,当我右键单击同一目录中的文件夹时,它就那里.

尝试失败
我已经看到通过再次运行安装程序并选择repair或已经解决了许多此类问题modify,此时这些尝试都没有奏效.

还有什么我可以试着让这个再次起作用吗?DIFF功能的消失正在伤害一些激烈的东西.

编辑
我是唯一一个处理文件的开发人员.我实际上找到了一种方法来查看差异:移动父文件夹TortoiseSVN->检查修改.此菜单确实显示了我的所有版本文件以及任何已修改的文件.

我还确认通过在另一台机器上检出相同的repo,文件仍然是版本控制的.

Edit2
值得注意的是,我使用的是Macdrive,它的右键菜单一直存在.另外,我刚看到我和TortoiseGIT也有同样的问题.

tortoisesvn 64-bit windows-7

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

调试期间Visual Studio 2010代码分析

我正在研究VS2010 Professional中的Visio Addin,我在调试应用程序时正在寻找热点(特别是在COM对象周围).我找到了许多可以分析现有.NET应用程序的分析器,但没有一个(我见过)支持调试.此外,因为这是一个.NET加载项而不是完整的独立可执行文件,所以我不确定它们是如何公平的.

我调查过的Profilers:

  1. EQATEC
  2. Slimtune
  3. CLR
  4. nprof
  5. VS2010 Performance Profiler - 请注意,当我使用Professional时,这需要Ultimate或Premium.

有没有人找到可以在VS2010调试会话期间使用的分析器?

vb.net debugging profiler profiling visual-studio-2010

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