2016-02-18 2 views
0

Я пишу программу, использующую криптографию для класса. Поскольку у меня мало времени, я бы хотел пойти с Python для этого задания. Проблема, с которой я сталкиваюсь, заключается в том, что код должен работать на машинах Linux в школе. Мы можем использовать SSH в этих машинах и запускать код, но нам не разрешено ничего устанавливать. Я использую библиотеку Cryptography для Python: естьPython - Распространение библиотеки с источником

pip install cryptography 

ли простой способ, что я могу включить это с моим .py файлом таким образом, что проблема не в состоянии установить библиотеку на машинах Linux выиграла» Это проблема?

+1

Установлены ли системы с помощью virtualenv? Общая практика заключается в использовании виртуальных сред и установке зависимостей python внутри этого, а не в установке системы. Если не [это] (http://stackoverflow.com/a/9349150/1068887) может помочь. – adarsh

+0

Есть ли четкая спецификация назначения? Возможно, пользовательские установки программного обеспечения официально не разрешены. – CristiFati

+0

Мы можем захватить шифрование/дешифрование из Интернета для этого назначения. К сожалению, у нас нет виртуального доступа, поэтому я посмотрю, как это происходит. – Shoggoth269

ответ

0

У вас есть несколько вариантов:

virtualenv

Установите в virtualenv (предполагается, что команда virtualenv будет установлена):

$ cd projectdir 
$ virtualenv venv 
$ source venv/bin/activate 
(venv)$ pip install cryptography 
(venv)$ vim mycode.py 
(venv)$ python mycode.py 

Уловка, установить в локальную виртуальную среду, которая не делает требует привилегий root.

токсикодендрон

tox является отличным инструментом. После небольшого инвестирования вы можете легко создать несколько virtualenvs.

Предполагается, что в вашей системе установлено tox.

$ tox-quickstart 
$ ...accept all defaults 
$ vim tox.ini 

tox.ini мой взгляд, как:

[tox] 
envlist = py27 
skipsdist = true 

[testenv] 
commands = python --version 
deps = 
    cryptography 

затем запустить (с virtualenvs деактивируется):

$ tox 

это создаст virtualenv в каталоге .tox/py27

Activate он (все еще находится в одном и том же каталоге):

$ source .tox/py27/bin/activate 
(py27)$ pip freeze 
cryptography==1.2.2 
... and few more... 

Установить в --user профиль питона

Хотя это позволяет установить без корней привилегиями, не рекомендуется, так как скоро закончится в один большой беспорядок.

EDIT (реакция на MattDMo комментарий):

Если один пользователь имеет два проекта с противоречивыми требованиями (например, различные версии пакета), --user установка не будет работать, как пакеты живут в одном объеме общего во всех пользовательских проектах.

С помощью virtualenvs вы можете сохранять virtualenv внутри папок проекта и чувствовать, что может уничтожать и воссоздавать или изменять любые из них, не затрагивая никаких других проектов .

У Virtualenvs нет проблем с «накапливанием»: если вы можете найти свою папку проекта , вы сможете найти и управлять связанными с ней виртуальными виртуальными машинами.

Использование virtualenv стало фактически рекомендованным стандартом. Я помню многочисленные примеры , начиная с создания virtualenv, но я не могу вспомнить один случай , используя $ pip install --user.

+0

Как у вас есть куча виртуальных файлов для разных проектов, накапливающих все, кроме установки с помощью '--user'? Извините, но вам нужно будет найти существенную поддержку для вашего последнего требования, поскольку это просто неправда. Пользовательские установки могут управляться так же легко, как установка системы или несколько виртуальных серверов. – MattDMo

+0

@MattDMo Если у одного пользователя есть два проекта с противоречивыми требованиями (например, разные версии пакетов), установка '--user' не будет работать. С virtualenvs вы можете сохранять virtualenv внутри папок проекта и не стесняться уничтожать и воссоздавать или модифицировать любые из них, не затрагивая какой-либо другой проект. Это не относится к установкам '--user'. У Virtualenvs нет проблем с «накапливанием»: если вы можете найти папку проекта, вы сможете найти и управлять связанными с ней виртуальными виртуальными машинами. Очень просто. –

Смежные вопросы