Общий виртуал, некоторые библиотеки видны, некоторые нет - PullRequest
0 голосов
/ 18 марта 2019

У меня есть программа на Python, которая используется многими нетехническими пользователями.Он доступен всем на Dropbox.Самый простой способ доставить его всем - это также поделиться виртуозностью в Dropbox.Каждый Dropbox установлен в том же месте.В случае, если я волнуюсь, это macs, поэтому dropbox монтируется в / 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 копий панд.

Я разместил здесь несколько вопросов на эту тему, и все пытаются убедить меня в том, что «нет, вы должны реорганизовать всю свою структуру и сделать это, как ЭТО»и никто из них на самом деле не работает для моей ситуации.Я постоянно шокирован тем, что никто, похоже, не пытается делать то, что я делаю, но ... эх ...

Так что, в общем, пожалуйста, не пытайтесь отговорить меня от этогоархитектура ... это единственная модель, которая мне подходит.

1 Ответ

0 голосов
/ 18 марта 2019

Некоторые библиотеки python, такие как numpy, должны быть собраны в системе, в которой они работают, из-за зависимостей сборки в системе - которые могут сильно различаться в зависимости от нескольких факторов. Невозможно заставить их работать, используя общий доступ через Dropbox, если все системы, использующие его, не идентичны той, где он был построен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...