ํ์ผ "/usr/lib/python2.7/site-packages/fabric/network.py", 16ํ,
fabric.exceptions์์ NetworkError ๊ฐ์ ธ์ค๊ธฐ
ImportError: NetworkError ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ด๋กํด?
์๋ฌด๋ ๋์๊ฒ ๋๋ตํ ์ ์์ด?
์๋ ํ์ธ์ @neemxyang -
๋ด ์ ์์ Fabric์ ์ ๊ฑฐํ๊ณ ํ๊ฒฝ์ ๋ค์ ์ค์นํ๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋๋ ์๋ํ์ง ์์ผ๋ฉด ์๋ก์ด ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ์ฌ๊ธฐ์ Fabric์ ์ค์นํด ๋ณด์ญ์์ค. 2.x๋ Python 2๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก Fabric 1.x๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Fabric-2.x๋ Python 2.7์ ์ง์ํ์ง๋ง Fabric-1.x๋ Python 3์ ์ง์ํ์ง ์์ต๋๋ค.
์๋ ์ฌ๊ธฐ์ ๊ฒ์๋ ์ค๋ฅ ์์ฒด๋ ๋ถ๊ฐ๋ฅํด ๋ณด์ ๋๋ค. ํจ๋ธ๋ฆญ์ด ์ค์ ๋ก ์ค์น๋์ง ์์ ๊ฒ๊ณผ ๊ฐ์ ๋งค์ฐ ์ฌ๊ฐํ pip ์ค์น ๋๋ python ๊ฒฝ๋ก ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค. ๋์์ ์ค ์ ์์ผ๋ ค๋ฉด ํจ์ฌ ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
Fabric-2.x๋ Python 2.7์ ์ง์ํ์ง๋ง Fabric-1.x๋ Python 3์ ์ง์ํ์ง ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ์ ๋ Python 2 ์ง์ ์ ์ค๋จํ ๋ช ๊ฐ์ง ํจํค์ง์ ๋ํด ์์ ํ๊ณ ์๋๋ฐ Fabric์ด ๊ทธ ์ค ํ๋๊ฐ ์๋๋ผ๋ ์ฌ์ค์ ์์ด๋ฒ๋ ธ์ต๋๋ค.
๋๋ ๋๋ฌด ๋๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ด 2๋ฅผ ๋จ์ด ๋จ๋ฆฌ๊ธฐ ์์ํ ๋ 3์ ์ถ๊ฐํฉ๋๋ค ๐
๋ํ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ํจํค์ง๊ฐ ์๋ชป ์ค์น๋์๊ฑฐ๋(์ด์ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ค๋ฅ์ ์ผ๋ฐ์ ์ธ ์์ธ - ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ setuptools) ๋ฒ์ 2๊ฐ ์ค์น๋ ๋ฒ์ 1 ๋ฌธ์๋ฅผ ๋ฐ๋ฅด๋ ค๊ณ ํฉ๋๋ค.
Python 3.5.3์ ์ฌ์ฉํ๋ ํจ๋ธ๋ฆญ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
* fabric.exceptions์์ NetworkError ๊ฐ์ ธ์ค๊ธฐImportError: 'NetworkError' ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค *
๋ด virtualenv ๋ด๋ถ์ ํจ๋ธ๋ฆญ์ ์ ๊ฑฐํ๊ณ fabric3์ ์ค์นํ์ฌ ํด๊ฒฐํฉ๋๋ค.
(venv-book-tuto) root@cs-6000-devshell-vm-842dba28-6daa-4d35-9b97-4b7c0ff7b2db:/home/<user>/venv-book-tuto/django# fab configure_postgres
Traceback (most recent call last):
File "/home/<user>/venv-book-tuto/bin/fab", line 10, in <module>
sys.exit(program.run())
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/invoke/program.py", line 352, in run
self.parse_collection()
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/invoke/program.py", line 444, in parse_collection
self.load_collection()
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/fabric/main.py", line 82, in load_collection
super(Fab, self).load_collection()
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/invoke/program.py", line 661, in load_collection
module, parent = loader.load(coll_name)
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/invoke/loader.py", line 76, in load
module = imp.load_module(name, fd, path, desc)
File "/home/<user>/venv-book-tuto/lib/python3.5/imp.py", line 234, in load_module
return load_source(name, filename, file)
File "/home/<user>/venv-book-tuto/lib/python3.5/imp.py", line 172, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 693, in _load
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 673, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/home/<user>/venv-book-tuto/django/fabfile.py", line 42, in <module>
from fabric.api import *
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/fabric/api.py", line 10, in <module>
from fabric.context_managers import (cd, hide, settings, show, path, prefix,
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/fabric/context_managers.py", line 27, in <module>
from fabric.state import output, win32, connections, env
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/fabric/state.py", line 9, in <module>
from fabric.network import HostConnectionCache, ssh
File "/home/<user>/venv-book-tuto/lib/python3.5/site-packages/fabric/network.py", line 16, in <module>
from fabric.exceptions import NetworkError
ImportError: cannot import name 'NetworkError'
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๋๋ฌด ๋๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ด 2๋ฅผ ๋จ์ด ๋จ๋ฆฌ๊ธฐ ์์ํ ๋ 3์ ์ถ๊ฐํฉ๋๋ค ๐
๋ํ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ํจํค์ง๊ฐ ์๋ชป ์ค์น๋์๊ฑฐ๋(์ด์ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ค๋ฅ์ ์ผ๋ฐ์ ์ธ ์์ธ - ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ setuptools) ๋ฒ์ 2๊ฐ ์ค์น๋ ๋ฒ์ 1 ๋ฌธ์๋ฅผ ๋ฐ๋ฅด๋ ค๊ณ ํฉ๋๋ค.