我有一个Python程序,很多非技术用户都在使用。在Dropbox上与所有人共享。将其交付给所有人的最简单方法是在Dropbox上共享一个virtualenv。每个人的保管箱都安装在同一位置。在我担心的情况下,这些是Mac,因此将保管箱安装在/ Volumes / Dropbox中。该程序在Dropbox / CYAN中,venvs在Dropbox / venvs / mac /中。
当我创建一个venv并点我所有的库时,它在创建它的机器上运行良好,但是其他机器似乎看不到某些已安装的库。
例如,当我导入熊猫时,它会显示错误:
>>> import pandas
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Volumes/Dropbox (CEP)/venvs/mac/test3/lib/python3.7/site-packages/pandas/__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy', 'pytz']
numpy和pytz存在,并且具有正确的权限。
是否有可能是dropbox中断的符号链接?
注意:我知道virtualenv不想在多台机器上使用。但是没有其他好的方法可以做到这一点,而且路径都是相同的,因此它实际上不在乎。
进一步说明:我已经考虑过让每个用户都有自己的virtualenv,但是当他们做一些愚蠢的事情时,我必须弄清楚。如果我维护所有内容,则要简单得多。
我已经考虑过使用Docker,但这对于用户来说使事情变得太复杂了。
我已经考虑过编译所有内容,但是我有多个入口点,所以最终我将有12个熊猫在附近奔跑。
我在这里就此主题发布了多个问题,每个人都试图说服我,“不,您应该重新组织整个结构,并像这样做”,但这些都没有真正适合我的情况。我一直感到震惊,因为似乎没有其他人试图做我正在做的事情,但是...嗯...
因此,基本上,请不要试图让我脱离这种体系结构……这是唯一适合我的模型。
答案 0 :(得分:0)
由于对系统的依赖关系,一些python库(例如numpy)必须在运行该系统的系统上构建-可能会因多种因素而有很大差异。除非所有使用它的系统都与构建它的系统相同,否则无法通过Dropbox共享来使这些工作正常进行。