小编Jam*_*ull的帖子

使用SQLAlchemy连接到数据库

我正在尝试连接到本地计算机上的数据库.

import sqlalchemy
engine = sqlalchemy.create_engine('mssql+pyodbc://localhost\\SQLEXPRESS/NCM')
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误:

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)

并输出此警告:

C:\Miniconda\envs\bees\lib\site-packages\sqlalchemy\connectors\pyodbc.py:82: SAWarning: No driver name specified; this is expected by PyODBC when using DSN-less connections
"No driver name specified; "
Run Code Online (Sandbox Code Playgroud)

我应该在哪里寻找诊断问题?

python sqlalchemy

9
推荐指数
1
解决办法
7519
查看次数

跨多个模块的Python日志记录

我正在尝试将日志记录(到控制台而不是文件)添加到我已经工作了一段时间的代码中.阅读了一下我有一个我认为应该有效的模式,但我不太确定我哪里出错了.

我有以下三个文件(显然是简化的):

controller.py

import my_module    
import logging
from setup_log import configure_log

def main():
    logger = configure_log(logging.DEBUG, __name__)
    logger.info('Started logging')
    my_module.main()

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

setup_log.py

import logging

def configure_log(level=None, name=None):
    logger = logging.getLogger(name)
    logger.setLevel(level)
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)
    chFormatter = logging.Formatter('%(levelname)s - %(filename)s - Line: %(lineno)d - %(message)s')
    console_handler.setFormatter(chFormatter)
    logger.addHandler(console_handler)
    return logger
Run Code Online (Sandbox Code Playgroud)

my_module.py

import logging

def main():    
    logger = logging.getLogger(__name__)
    logger.info("Starting my_module")
    print "Something"

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

当我运行它们时,只有第一次调用日志会产生一个输出到控制台 - "开始记录".对记录的第二次调用 - "启动我的模块"刚刚过去了.

我误解/破坏了什么?

python logging python-2.7

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

无法下载和安装scikit-learn

我对python很新.我想使用KMean代码,我想安装scikit-learnsklearn.

我使用此代码尝试安装这些包:

pip install -U sklearn
pip install -U scikit-learn
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_reihaneh/sklearn/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-89YQB7-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_reihaneh/sklearn
Storing debug log for failure in /home/reihaneh/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)

问题的原因是什么?

python installation scikit-learn

8
推荐指数
1
解决办法
7516
查看次数

如何使用networkx在加权图中找到最短路径?

我正在使用networkxPython 2.7 Enthought distribution来计算海港网络之间的最短路径.使用它来计算距离工作得很好dijkstra_path_length,但我也需要知道它找到了什么路线dijkstra_path(另外,我认为如果先计算路径,那么运行起来应该更快,然后从路径计算长度而不是在同一数据上运行Dijkstra算法两次).然而,路径功能失败了,说list indices must be integers, not str.

这是产生错误的代码.谁能告诉我我做错了什么?

import networkx as nx

# Create graph
network_graph = nx.Graph()
f_routes = open('routes-list.txt', 'rb')
# Assign list items to variables
for line in f_routes:
    route_list = line.split(",")
    orig = route_list[0]
    dest = route_list[1]
    distance = float(route_list[2])
    # Add route as an edge to the graph
    network_graph.add_edge(orig, dest, distance=(distance))

# Loop through all destination and origin pairs
for destination in …
Run Code Online (Sandbox Code Playgroud)

python networkx python-2.7

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

如何使用igraph在最短路径上获取顶点?

我正在使用igraph生成顶点对之间最短路径距离的矩阵,但我无法弄清楚如何返回顶点.到目前为止,我有:

path_length_matrix = ig_graph.shortest_paths_dijkstra(None,None,"distance", "ALL")
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个返回路径矩阵的函数,比如距离矩阵,但我在igraph文档中看不到任何显示如何获取路径的内容.

python shortest-path igraph

7
推荐指数
1
解决办法
5282
查看次数

解析Suds SOAP复杂数据类型到Python dict

我有一些来自SOAPAPI的数据Suds,我需要在Python脚本中解析它.在我离开并编写解析器之前(不仅仅是这个要做):

1)有人认识到这是什么吗?它是Suds (文档)返回的标准复杂对象数据类型.应该发现那个.

2)如果是这样,是否有可用于将其转换为Python字典的现有库?如何将此对象解析为Python dict?我似乎可以将字典传递给Suds,但看不到一个简单的方法让一个人退出.

(ArrayOfBalance){
   Balance[] = 
      (Balance){
         Amount = 0.0
         Currency = "EUR"
      },
      (Balance){
         Amount = 0.0
         Currency = "USD"
      },
      (Balance){
         Amount = 0.0
         Currency = "GBP"
      },
 }
Run Code Online (Sandbox Code Playgroud)

python soap dictionary suds

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

将bookmarklet添加到wordpress帖子

我正在尝试将javascript bookmarklet链接添加到我的WordPress网站上的帖子.但是它没有出现在帖子预览中.当我检查WordPress添加到帖子的链接时,它已将其转换为javascript:void(0).这个简单的例子再现了这个问题.

<a href="javascript:alert('Alert!');">Search Scholar</a>
Run Code Online (Sandbox Code Playgroud)

还有一些其他人在这里,这里,这里这里遇到了同样的问题但是没有人似乎已经找到了一个解决方案,除了给人们的书签代码供人们复制和粘贴并创建他们自己的书签.

导致此问题的原因是Chrome的XSS保护功能在通过wp-admin提交时从链接中删除了javascript.一个"解决方案"是将行添加header("X-XSS-Protection: 0");到根文件夹中的wp-blog-header.php.这是不安全的,因为它关闭了WordPress站点上的XSS保护,但它确实允许在页面加载时呈现bookmarklet代码.

是否有任何真正的解决方案可以解决此问题,而不涉及关闭XSS保护?是否有一个插件,我可以安装到我的WordPress,以允许我javascript:在我的帖子中添加链接?

javascript xss wordpress header bookmarklet

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

在PyDev中访问交互式Django shell

我可以从命令行打开一个交互式shell,而不是从Eclipse里面的PyDev打开.点击Django --> Shell with django environment我得到以下输出:

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Python27\python.exe 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
PyDev console: using default backend (IPython not available).

from django.core import management;import carbon_factors.settings as settings;management.setup_environ(settings)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'module' object has no attribute 'setup_environ'
Run Code Online (Sandbox Code Playgroud)

为了尝试解决这个问题,我已经将PyDev更新为3.2.0而没有更改输出.我正在使用Django 1.6.

我已经看了看评论在这里它指出了我这里.然而,接受的答案似乎已经内置到Django/PyDev中,因为它建议改变的行manage.py已经改变.

python eclipse django shell pydev

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

Windows如何计算电池的剩余时间?

我正在测试一个应用程序,让用户知道何时插拔他们的笔记本电脑以获得最大的笔记本电池电量.除此之外,我试图从Windows功率计复制工具提示.

到目前为止,这是相当成功的,有一些差异.

  1. Windows剩余时间通知,例如"X hr XX min(XX%)剩余",直到大约一分钟后才显示.
  2. 在更换电池负载时,Windows剩余时间似乎更稳定

这些让我认为Windows剩余时间算法是在过去一分钟左右的平均值,但我找不到任何相关的文档.有谁知道它究竟是做什么所以我可以重现它?

这是我的实现(在Python中,但问题是与语言无关).我想我需要平均最近x从轮询放电率每y秒,但需要知道的值xy.

t = wmi.WMI(moniker = "//./root/wmi")
batts = t.ExecQuery('Select * from BatteryStatus where Voltage > 0')

time_left = 0
for _i, b in enumerate(batts):
    time_left += float(b.RemainingCapacity) / float(b.DischargeRate)

hours = int(time_left)
mins = 60 * (time_left % 1.0)
return '%i hr %i min' % (hours, mins)
Run Code Online (Sandbox Code Playgroud)

language-agnostic windows batterylevel

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

如何从剪贴板粘贴到 Python 窗口中?

如何将剪贴板中的内容粘贴到 Python 窗口中。我按了Ctrl-V,没用。我单击鼠标右键,但没有任何反应。我需要安装什么东西吗?我在 Windows 7 上安装了 Python 2.7.11。

python paste

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