【问题标题】:Installing freetds for Python Virtual Environment为 Python 虚拟环境安装 freetds
【发布时间】:2016-07-04 13:28:21
【问题描述】:

我已经设置了一个基本的 Python3 虚拟环境并且需要访问 SQL 服务器,但是我似乎不知道如何让 pymssql 模块在虚拟环境中找到安装的 freetds。我的目录结构是:

VirtualEnv/
    --------.git/
    --------(git files)
    --------bin/
              -------activate
              -------easy_install
              -------pip
              -------python3
              -------(more bin stuff)
    --------include/
    --------lib/--> python3.5 --> site_packages --> (modules & sources)
    --------project_dir/--> (project sources)

我在哪里放置 freetds 模块并将 pymssql 指向它?

【问题讨论】:

  • FreeTDS .so 二进制文件位于系统级别,位于您的 virtualenv 之外。你用的是什么发行版?您将需要安装一些先决条件。 Ubuntu? CentOS?
  • 我在 MAC 上运行,所以我假设它是 BSD。虚拟环境是 Python3 附带的发行版。有没有办法在这个虚拟环境中安装 freetds 包?

标签: python python-3.x virtualenv freetds pymssql


【解决方案1】:

如果您想让它在 Mac 上本地运行,最好的办法是通过自制软件安装 FreeTDS。它将安装在系统级别,然后 pyodbc 或 pymssql 可以使用 FreeTDS 与 SQL Server 进行通信。

首先安装自制软件:

http://brew.sh/

然后安装 FreeTDS:

brew install freetds

然后测试通过 FreeTDS 连接到服务器:

tsql -H <yourdbhost> -p <yourdbport> -U <yourusername> -P <yourpassword>

从那里,获取相同的凭据并在 Python 中连接 pymssql。祝你好运!

【讨论】:

  • 问题出现是因为我在 virtualenv 中运行 python3,但我的 freetds 位于系统级别。看来我需要 virtualenv 要么在其外部查找 freetds 文件,要么我需要安装 freetds 和 virtualenv 上的任何依赖项,后者是我认为最好的方法。
  • virtualenv 应该只影响 Python 及其包,而不是系统级别的任何东西。要验证这一点,请尝试在没有 virtualenv 的情况下运行 tsql -C 和 which tsql,然后激活一个。
猜你喜欢
  • 2018-11-03
  • 2018-02-20
  • 2019-05-16
  • 2019-01-20
  • 1970-01-01
  • 2018-04-19
  • 2016-03-16
  • 2019-01-08
  • 1970-01-01
相关资源
最近更新 更多