Я пытаюсь импортировать модуль cytoolz в свой скрипт pyspark.Модуль заархивирован в файле libs.zip, где находятся все мои требования.Я получаю сообщение об ошибке:
>>> import libs.cytoolz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/dist/libs.zip/libs/cytoolz/__init__.py", line 1, in <module>
ImportError: No module named 'libs.cytoolz.itertoolz'
Я довольно новичок в Python и PySpark, поэтому я немного растерялся, как подойти к этому решению, так как похоже, что это проблема с тем, как__init__.py
файл записан?
Что я могу сделать, чтобы мои требования были заархивированы одинаково и в то же время, чтобы мой скрипт мог их импортировать?
Редактировать Кстати, для этого я использую Python3.
Edit # 2
С тех пор я узнал, что cytoolz - это модуль Cython, для которого нужно, чтобы Cython былустановлен.Я установил его, и я также тестирую, импортировав pyximport
и установив его сначала, прежде чем пытаться импортировать cytoolz, но не повезло.Вот как я начинаю свой REPL:
PYTHONPATH=$PWD/libs.zip/libs:$PWD/libs.zip/libs/cytoolz pyspark
И затем, внутри него, это то, что я делаю:
>>> import pyximport; pyximport.install()
(None, <pyximport.pyximport.PyxImporter object at 0x7f74441f7b00>)
>>> import cytoolz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/folder/dist/libs.zip/libs/cytoolz/__init__.py", line 1, in <module>
ImportError: No module named 'cytoolz.itertoolz'
Как вы можете видеть, этоне может найти модуль itertoolz, который правильно расположен (это файл с именем itertoolz.pyx
внутри папки cytoolz).