2015-07-18 4 views
2

Мне нужно использовать функцию в пакете numpy, скажем numpy.random.choice (другая функция Python lib random.choice выборочно отображает список, пока я хочу, чтобы он делал это из некоторых дискретных распределений).Как «частично» установить пакет Python

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

Определенное переписывание функции - это решение (например, с использованием метода псевдонима). Но мне интересно, есть ли способ, которым я могу установить только часть numpy, связанную с numpy.random.choice?

+0

Зачем вам это нужно? – cel

+1

С особенностями numpy я очень сомневаюсь, что это было бы возможно. Numpy записывается на C и скомпилируется на каждой машине во время установки. Поэтому установка небольшого компонента должна быть довольно сложной. Я действительно думаю, что было бы проще написать собственную версию 'numpy.random.choice' (или извлечь только этот код из источника C) в качестве нового пакета. – inspectorG4dget

+4

Является ли' random.choice' неприемлемым заменителем? – IanAuld

ответ

2

Это, вероятно, не стоит хлопот, но это зависит от вас, чтобы сделать этот компромисс. numpy.random.choice не реализован в Python, а в файле .pyx, который необходимо скомпилировать в C с помощью Cython.

Вы можете реорганизовать его и построить новый пакет, который реализует только эту функциональность (возможно, с несколькими связанными структурами данных). Но с недавними улучшениями с файлами колес Python установка numpy должна быть намного проще, чем в прошлом. Поэтому я считаю, что проще установить numpy так, как есть, и принять, что у вас есть это как зависимость.

+0

Спасибо за ваш ответ. После поиска в Интернете и запроса здесь, кажется, что для простых функций, таких как «numpy.random.choice», переписывание - лучшее решение. – Broan

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