I've decided to try install 2.3.4, however I am getting some errors when installing it.
sudo /opt/netbox/upgrade.sh
Here is the output:
root@svs-template-ubuntu-18:/opt/netbox# sudo /opt/netbox/upgrade.sh
Running NetBox upgrade as root, press any key to continue or ^C to cancel
Cleaning up stale Python bytecode (find . -name "*.pyc" -delete)...
Removing old Python packages (pip3 uninstall -r old_requirements.txt -y)...
WARNING: Skipping django-rest-swagger as it is not installed.
Found existing installation: psycopg2 2.8.6
Uninstalling psycopg2-2.8.6:
Successfully uninstalled psycopg2-2.8.6
Found existing installation: pycrypto 2.6.1
ERROR: Cannot uninstall 'pycrypto'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Updating required Python packages (pip3 install -r requirements.txt --upgrade)...
Requirement already satisfied: Django<2.0,>=1.11 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 1)) (1.11.29)
Requirement already satisfied: django-cors-headers>=2.1.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 2)) (3.2.1)
Requirement already satisfied: django-debug-toolbar>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 3)) (2.2)
Requirement already satisfied: django-filter>=1.1.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 4)) (2.2.0)
Requirement already satisfied: django-mptt>=0.9.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 5)) (0.11.0)
Requirement already satisfied: django-tables2>=1.19.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 6)) (2.3.4)
Requirement already satisfied: django-timezone-field>=2.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 7)) (3.1)
Requirement already satisfied: djangorestframework>=3.7.7 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 8)) (3.11.2)
Requirement already satisfied: drf-yasg[validation]>=1.4.4 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 9)) (1.17.1)
Requirement already satisfied: graphviz>=0.8.2 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 10)) (0.16)
Requirement already satisfied: Markdown>=2.6.11 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 11)) (3.3.3)
Requirement already satisfied: natsort>=5.2.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 12)) (7.1.0)
Requirement already satisfied: ncclient==0.5.3 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 13)) (0.5.3)
Requirement already satisfied: netaddr==0.7.18 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 14)) (0.7.18)
Requirement already satisfied: paramiko>=2.4.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 15)) (2.7.2)
Requirement already satisfied: Pillow>=5.0.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 16)) (8.1.0)
Requirement already satisfied: psycopg2-binary>=2.7.4 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 17)) (2.8.6)
Requirement already satisfied: py-gfm>=0.1.3 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 18)) (1.0.2)
Requirement already satisfied: pycryptodome>=3.4.11 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 19)) (3.9.9)
Requirement already satisfied: xmltodict>=0.11.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 20)) (0.12.0)
Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from ncclient==0.5.3->-r requirements.txt (line 13)) (1.15.0)
Requirement already satisfied: lxml>=3.3.0 in /usr/local/lib/python3.6/dist-packages (from ncclient==0.5.3->-r requirements.txt (line 13)) (4.6.2)
Requirement already satisfied: setuptools>0.6 in /usr/local/lib/python3.6/dist-packages (from ncclient==0.5.3->-r requirements.txt (line 13)) (51.1.2)
Requirement already satisfied: pytz in /usr/local/lib/python3.6/dist-packages (from Django<2.0,>=1.11->-r requirements.txt (line 1)) (2020.5)
Collecting django-cors-headers>=2.1.0
Using cached django_cors_headers-3.6.0-py3-none-any.whl (12 kB)
Using cached django_cors_headers-3.5.0-py3-none-any.whl (11 kB)
Using cached django_cors_headers-3.4.0-py3-none-any.whl (11 kB)
Using cached django_cors_headers-3.3.0-py3-none-any.whl (14 kB)
Collecting django-debug-toolbar>=1.9.0
Using cached django_debug_toolbar-3.2-py3-none-any.whl (200 kB)
Requirement already satisfied: sqlparse>=0.2.0 in /usr/local/lib/python3.6/dist-packages (from django-debug-toolbar>=1.9.0->-r requirements.txt (line 3)) (0.4.1)
Using cached django_debug_toolbar-3.1.1-py3-none-any.whl (197 kB)
Using cached django_debug_toolbar-3.1-py3-none-any.whl (197 kB)
Using cached django_debug_toolbar-3.0-py3-none-any.whl (197 kB)
Collecting django-filter>=1.1.0
Using cached django_filter-2.4.0-py3-none-any.whl (73 kB)
Using cached django_filter-2.3.0-py3-none-any.whl (73 kB)
Requirement already satisfied: django-js-asset in /usr/local/lib/python3.6/dist-packages (from django-mptt>=0.9.0->-r requirements.txt (line 5)) (1.2.2)
Collecting django-timezone-field>=2.0
Using cached django_timezone_field-4.1.1-py3-none-any.whl (9.5 kB)
Using cached django_timezone_field-4.1-py3-none-any.whl (9.5 kB)
Using cached django_timezone_field-4.0-py3-none-any.whl (7.6 kB)
Collecting djangorestframework>=3.7.7
Using cached djangorestframework-3.12.2-py3-none-any.whl (957 kB)
Using cached djangorestframework-3.12.1-py3-none-any.whl (913 kB)
Using cached djangorestframework-3.12.0-py3-none-any.whl (913 kB)
Collecting drf-yasg[validation]>=1.4.4
Using cached drf_yasg-1.20.0-py2.py3-none-any.whl (1.6 MB)
Requirement already satisfied: coreschema>=0.0.4 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (0.0.4)
Requirement already satisfied: ruamel.yaml>=0.15.34 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (0.16.12)
Requirement already satisfied: coreapi>=2.3.3 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.3.3)
Requirement already satisfied: uritemplate>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (3.0.1)
Requirement already satisfied: inflection>=0.3.1 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (0.5.1)
Requirement already satisfied: packaging in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (20.8)
Requirement already satisfied: swagger-spec-validator>=2.1.0 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.7.3)
Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.6/dist-packages (from Markdown>=2.6.11->-r requirements.txt (line 11)) (3.4.0)
Requirement already satisfied: pynacl>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from paramiko>=2.4.0->-r requirements.txt (line 15)) (1.4.0)
Requirement already satisfied: cryptography>=2.5 in /usr/local/lib/python3.6/dist-packages (from paramiko>=2.4.0->-r requirements.txt (line 15)) (3.3.1)
Requirement already satisfied: bcrypt>=3.1.3 in /usr/local/lib/python3.6/dist-packages (from paramiko>=2.4.0->-r requirements.txt (line 15)) (3.2.0)
Requirement already satisfied: cffi>=1.1 in /usr/local/lib/python3.6/dist-packages (from bcrypt>=3.1.3->paramiko>=2.4.0->-r requirements.txt (line 15)) (1.14.4)
Requirement already satisfied: pycparser in /usr/local/lib/python3.6/dist-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko>=2.4.0->-r requirements.txt (line 15)) (2.20)
Requirement already satisfied: itypes in /usr/local/lib/python3.6/dist-packages (from coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (1.2.0)
Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.25.1)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.6/dist-packages (from coreschema>=0.0.4->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.11.2)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2 in /usr/local/lib/python3.6/dist-packages (from ruamel.yaml>=0.15.34->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (0.2.2)
Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from swagger-spec-validator>=2.1.0->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (5.3.1)
Requirement already satisfied: jsonschema in /usr/local/lib/python3.6/dist-packages (from swagger-spec-validator>=2.1.0->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (3.2.0)
Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata->Markdown>=2.6.11->-r requirements.txt (line 11)) (3.7.4.3)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata->Markdown>=2.6.11->-r requirements.txt (line 11)) (3.4.0)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2->coreschema>=0.0.4->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (1.1.1)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib/python3.6/dist-packages (from jsonschema->swagger-spec-validator>=2.1.0->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (0.17.3)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.6/dist-packages (from jsonschema->swagger-spec-validator>=2.1.0->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (20.3.0)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.6/dist-packages (from packaging->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.4.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2020.12.5)
Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (4.0.0)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (2.10)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]>=1.4.4->-r requirements.txt (line 9)) (1.26.2)
Applying database migrations (python3 netbox/manage.py migrate)...
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/postgresql/base.py", line 21, in <module>
import psycopg2 as Database
ModuleNotFoundError: No module named 'psycopg2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "netbox/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 338, in execute
django.setup()
File "/usr/local/lib/python3.6/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/usr/local/lib/python3.6/dist-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/models.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/base_user.py", line 52, in <module>
class AbstractBaseUser(models.Model):
File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 124, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 325, in add_to_class
value.contribute_to_class(cls, name)
File "/usr/local/lib/python3.6/dist-packages/django/db/models/options.py", line 214, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/usr/local/lib/python3.6/dist-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 115, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/postgresql/base.py", line 25, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/postgresql/base.py", line 21, in <module>
import psycopg2 as Database
ModuleNotFoundError: No module named 'psycopg2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "netbox/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 338, in execute
django.setup()
File "/usr/local/lib/python3.6/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/usr/local/lib/python3.6/dist-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/models.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/base_user.py", line 52, in <module>
class AbstractBaseUser(models.Model):
File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 124, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 325, in add_to_class
value.contribute_to_class(cls, name)
File "/usr/local/lib/python3.6/dist-packages/django/db/models/options.py", line 214, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/usr/local/lib/python3.6/dist-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 115, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/postgresql/base.py", line 25, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
If I try install psycopg2 it just uninstalls it on the next attempt to run the upgrade script
Any ideas on what I'm doing wrong? Here is the output of pip3 freeze:
root@svs-template-ubuntu-18:/opt/netbox# pip3 freeze
asgiref==3.3.1
asn1crypto==0.24.0
attrs==20.3.0
Automat==0.6.0
bcrypt==3.2.0
blinker==1.4
certifi==2020.12.5
cffi==1.14.4
chardet==4.0.0
click==6.7
cloud-init==20.4
colorama==0.3.7
command-not-found==0.3
configobj==5.0.6
constantly==15.1.0
coreapi==2.3.3
coreschema==0.0.4
cryptography==3.3.1
distro-info===0.18ubuntu0.18.04.1
Django==1.11.29
django-cors-headers==3.2.1
django-debug-toolbar==2.2
django-filter==2.2.0
django-js-asset==1.2.2
django-mptt==0.11.0
django-rest-framework==0.1.0
django-tables2==2.3.4
django-timezone-field==3.1
djangorestframework==3.11.2
drf-yasg==1.17.1
graphviz==0.16
httplib2==0.9.2
hyperlink==17.3.1
idna==2.10
importlib-metadata==3.4.0
incremental==16.10.1
inflection==0.5.1
itypes==1.2.0
Jinja2==2.11.2
jsonpatch==1.16
jsonpointer==1.10
jsonschema==3.2.0
keyring==10.6.0
keyrings.alt==3.0
language-selector==0.1
lxml==4.6.2
Markdown==3.3.3
MarkupSafe==1.1.1
natsort==7.1.0
ncclient==0.5.3
netaddr==0.7.18
netifaces==0.10.4
oauthlib==2.0.6
openapi-codec==1.3.2
packaging==20.8
PAM==0.4.2
paramiko==2.7.2
Pillow==8.1.0
psycopg2-binary==2.8.6
py-gfm==1.0.2
pyasn1==0.4.2
pyasn1-modules==0.2.1
pycparser==2.20
pycrypto==2.6.1
pycryptodome==3.9.9
pygobject==3.26.1
PyJWT==1.5.3
PyNaCl==1.4.0
pyOpenSSL==17.5.0
pyparsing==2.4.7
pyrsistent==0.17.3
pyserial==3.4
python-apt==1.6.5+ubuntu0.5
python-debian==0.1.32
pytz==2020.5
pyxdg==0.25
PyYAML==5.3.1
requests==2.25.1
requests-unixsocket==0.1.5
ruamel.yaml==0.16.12
ruamel.yaml.clib==0.2.2
SecretStorage==2.3.1
service-identity==16.0.0
simplejson==3.17.2
six==1.15.0
sqlparse==0.4.1
ssh-import-id==5.7
swagger-spec-validator==2.7.3
systemd-python==234
Twisted==17.9.0
typing-extensions==3.7.4.3
ufw==0.36
unattended-upgrades==0.1
uritemplate==3.0.1
urllib3==1.26.2
views==0.3
xmltodict==0.12.0
zipp==3.4.0
zope.interface==4.3.2
root@svs-template-ubuntu-18:/opt/netbox#