virtualenv中的python xlwings可能吗?

问题描述 投票:1回答:4

我试图在virtualenv中使用python 3.4.3开始使用xlwings,但其中一个示例编程出错,因为它看不到numpy,这是非常多的安装在virtualenv中。 pip freeze在virtualenv节目中运行(清理了一些显然不必要的):

appscript==1.0.1
lxml==3.4.4
numpy==1.9.2
pandas==0.16.1
psutil==3.0.1
ptyprocess==0.5
pyparsing==2.0.3
python-dateutil==2.4.2
virtualenv==13.0.3
virtualenv-clone==0.2.5
virtualenvwrapper==4.6.0
xlrd==0.9.3
XlsxWriter==0.7.3
xlwings==0.3.5

我不确定将PYTHON_MAC设置到我的3.4.3安装位置(通过Homebrew完成)将解决这个问题,因为站点包的位置在其他地方。

是否可以从virtualenv运行xlwings,或者我是否需要在系统范围的站点包中安装我想要的软件包?

python numpy xlwings
4个回答
5
投票

您需要将PYTHON_MAC(或PYTHON_WIN)的位置设置为virtualenv的位置。例如。 PYTHON_MAC = ".../env/bin/python"


1
投票

嗨解决了类似的问题,改变了@Felix Zumstein建议的PYTHON_WIN变量,但是在xlwings VBA模块中,它通过xlwings.base文件导入到你的excel工作簿中。

我的问题是在anaconda环境中使用Anaconda软件包尝试使用python3设置运行xlwings。

当我尝试运行xlwings快速入门页面http://xlwings.org/quickstart/中描述的演示时,我收到以下错误

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\PHCostello\Documents\UbuntuHome\Projects\XLWings\mymodule.py", line 6, in rand_numbers
wb = Workbook.caller()  # Creates a reference to the calling Excel file
AttributeError: type object 'Workbook' has no attribute 'caller'

我在标准环境中有一个旧的python2和旧的xlwings设置,所以xlwings没有在anaconda环境中使用python3设置。

我修改了xlwings用于调用python的路径,通过进入vba编辑器并选择导入到Excel工作簿中的xlwings VBA模块。注意,这是导入到工作簿的xlwings.bas文件,而不是python模块。

那里有一个名为Settings的函数,它有一个名为PYTHON_WIN的变量,您可以将其更改为python.exe所用环境的目录。当我改变一切工作正常。

这个解决方案的优点是只为这个工作簿使用这个python路径,如果你将你的工作表发送到你想要删除硬编码路径的第三方,这也是一个缺点。


1
投票

从激活的虚拟环境(具有适当安装的软件包)启动Excel将为xlwings提供正确的环境。

Windows命令提示符的示例:

C:\code\xlwings>.\venv\Scripts\activate
(venv) C:\code\xlwings> "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"

然后打开xlwings XLSM文件并运行。


0
投票

我遇到了异常“异常:不能直接调用Workbook.caller()。通过Excel调用或首先使用Book.set_mock_caller()设置模拟调用者。”尝试在conda环境中使用XLWings时,此问题尚未解决。所以这是解决方案,首先从conda env启动Excel,如下所示:

(env_for_python_36) C:\Users\ashish.jain\Desktop>"C:\Program Files\Microsoft Office\Office16\EXCEL.exe"

然后,在加载Excel工作表的Python文件中,编写代码如下:

xlsm_path = r'C:\Users\ashish.jain\Desktop\Data.xlsm'
xlsm_path = xlsm_path.replace('\\', '/')
wb = xw.Book(xlsm_path)

0
投票

Interpreter表中只有一个xlwings.conf属性为我做了诀窍。

Config Sheet

© www.soinside.com 2019 - 2024. All rights reserved.