Я прошу прощения, если это не правильный сайт для этого. Если это не так, пожалуйста, дайте мне знать.
Вот некоторые сведения о том, что я пытаюсь сделать. Мы работаем над серией чат-ботов, которые будут запущены в производство. Каждый из них будет работать в среде Анаконды. Тем не менее, наша установка использует тензор потока, который использует gcc для компиляции, и соответствие запретило компиляторы работать. Кроме того, правила соблюдения также не одобряются при использовании установки pip или conda в производстве.
Как способ обойти это, я пытаюсь скопировать папку Anaconda 3 и переместить ее в prod со всеми уже скомпилированными и установленными зависимостями. Однако учетные записи между средами имеют разные имена, поэтому для этого требуется, чтобы я зашел в папку bin (по крайней мере; я уверен, что мне также потребуется изменить их в папках lib и pckg) и использовать sed -i
переименовать жестко закодированные пути в точку с \home\<dev account>\anaconda
до \home\<prod account>\anaconda
, и хотя это, похоже, работает, это также хороший способ изменить мою установку.
У меня следующие вопросы:
- Есть ли какой-нибудь хороший способ передать анаконду от одного пользователя другому, не используя
sed -i
на этих путях? Я уже читал, что сама Анаконда не поддерживает это, но я хотел бы получить ваш вклад.
- Можно ли как-нибудь установить anaconda в dev, чтобы скрипты в ней были либо жестко заданы, чтобы использовать имя производственной учетной записи в своих путях, либо использовать
~
.
- Если я должен продолжать использовать
sed
, есть ли что-то критическое, что я должен знать? Например, когда я использую grep <dev account> *
, некоторые файлы будут перечислены как binary file matches
. Нужно ли делать что-то особенное, чтобы изменить это?
И еще раз, я хорошо знаю, что мне нужно просто создать новую установку Anaconda на производственном компьютере, но это просто не вариант.
Edit:
Пока что я изменил файлы conda.sh и conda.csh в / etc, а также conda, активирую и деактивирую файлы в корневой корзине. Таким образом, я могу активировать и деактивировать свою среду с помощью новой учетной записи пользователя. Также я изменил файлы в папке bin в среде бота. Прямо сейчас я пытаюсь обучить бота проверять, работает ли он, но он продолжает терпеть неудачу и заявляет, что пользовательского действия не существует в списке. Но я не думаю, что это связано с этим.
Edit2:
Я подтвердил, что ошибка, которую я получаю, не связана с этим. Чтобы бот работал должным образом с портированной версией Anaconda, мне нужно было изменить только файлы conda.sh и conda.csh в / etc, чтобы их пути к python использовали ~, то же самое для активации и деактивируйте файлы в / bin и измените строку shebang в файле conda в / bin, чтобы использовать фактическое имя учетной записи. Это оставляет все остальные файлы в / bin и lib, все еще используя старое имя учетной записи в своих строках shebang и другую переменную, которая использует путь, и все же боты работают как положено. По всем правилам, я не думаю, что это должно работать, но это работает.