Когда вы находитесь в каталоге пакетов /usr/lib/python2.7/dist -, есть модуль с именем enum:
ls | grep ^enum
enum
Итак, когда ваш python3 пытается импортировать re, он зависит от enum, который он пытается загрузить в свой текущий каталог, просматривая sys.path, в этом контексте ''
является текущим каталогом. Но в этом каталоге находится модуль Python 2.7. Вот почему вы не видите ошибку, когда находитесь в любом другом каталоге.
>>> print(sys.path)
['',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-
dynload',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages']
Таким образом, вы можете обновить свой sys.path или просто не работать в этом каталоге пакетов python2.7 с python3.
Это не совсем ответ на ваш вопрос, однако один из самых простых способов сделать это — использовать два маршрутизатора, чтобы поместить компьютер, к которому вы хотите получить доступ из Интернета, в сеть, физически отделенную от других ваших компьютеров. Приличный маршрутизатор позволит вам указать исходный IP-адрес и перенаправить порт на внутренний IP-адрес.
Подключите оба маршрутизатора к основному Интернет-маршрутизатору. Поместите доступный в Интернет компьютер за одним маршрутизатором, а остальные компьютеры — за другим маршрутизатором. Затем доступный в Интернет компьютер находится в своей собственной сети и не может видеть другие ваши компьютеры за другим маршрутизатором. Не забудьте открыть порт на маршрутизаторе для компьютера с доступом в Интернет, а также на главном маршрутизаторе для доступа к Интернету.
Возможно, вы не захотите использовать дешевый потребительский маршрутизатор, который можно легко взломать с компьютера, доступного в Интернете. Или вы можете установить что-то вроде прошивки dd -wrt на маршрутизаторы. Используйте очень длинный пароль на маршрутизаторах, чтобы предотвратить перебор паролей маршрутизаторов.
Если вы хотите пофантазировать, вы можете использовать что-то вроде Raspberry Pi в качестве маршрутизатора (s ). Затем вы можете настроить его по своему вкусу.
РЕДАКТИРОВАТЬ:
Вам действительно нужно два маршрутизатора, подключенных к вашему основному маршрутизатору. Существует нечто, называемое Отравление кэша ARP , которое позволяет захваченной машине, подключенной к вашему основному маршрутизатору, перенаправлять весь трафик локальной сети через захваченную машину. Это может позволить машине захватить машины за вашим другим маршрутизатором. Это называется человек -в --средней (MITM )атаке .
Это решение я использовал после прочтения ответа Twitch Finger.