Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia rozwiązanie błędu występującego podczas próby uruchomienia mssql-conf instalatora przy użyciu modułu języka Python. W tym artykule opisano również wymagania języka Python dotyczące programu Microsoft SQL Server w systemie Linux i przedstawiono obejście problemu, jeśli używasz wczesnej wersji języka Python podczas próby skonfigurowania programu SQL Server w systemie Linux.
Dotyczy: SQL Server 2019 w systemie Linux
Symptomy
Podczas próby uruchomienia mssql-conf instalatora po zainstalowaniu programu Microsoft SQL Server 2019 zostanie wyświetlony komunikat o błędzie "Obiekt modułu nie ma uruchomienia atrybutu", jeśli używasz wersji języka Python starszej niż 3,5.
Rozważ następujące scenariusze:
Zainstaluj program SQL Server w systemie Linux, wykonując kroki opisane w temacie Wskazówki dotyczące instalacji programu SQL Server w systemie Linux.
Spróbuj uruchomić
/opt/mssql/bin/mssql-confinstalatora. Jednak występuje zależność modułu:
testslesvm2:~ # /opt/mssql/bin/mssql-conf setup
Traceback (most recent call last):
File "/opt/mssql/bin/../lib/mssql-conf/mssql-conf.py", line 17, in <module>
import mssqlad
File "/opt/mssql/lib/mssql-conf/mssqlad.py", line 15, in <module>
import pyadutil
File "/opt/mssql/lib/mssql-conf/pyadutil.py", line 6, in <module>
import typing
ImportError: No module named 'typing'
Po rozwiązaniu problemu z zależnością modułu "wpisywanie" może również zostać wyświetlony następujący komunikat o błędzie:
testslesvm2:~ # /opt/mssql/bin/mssql-conf setup
Warning: could not create log file for mssql-conf at /var/opt/mssql/log/mssql-conf/mssql-conf.log.
Traceback (most recent call last):
File "/opt/mssql/bin/../lib/mssql-conf/mssql-conf.py", line 597, in <module>
main()
File "/opt/mssql/bin/../lib/mssql-conf/mssql-conf.py", line 593, in main
processCommands()
File "/opt/mssql/bin/../lib/mssql-conf/mssql-conf.py", line 310, in processCommands
COMMAND_TABLE[args.which]()
File "/opt/mssql/bin/../lib/mssql-conf/mssql-conf.py", line 93, in handleSetup
mssqlconfhelper.setupSqlServer(eulaAccepted, noprompt=args.noprompt)
File "/opt/mssql/lib/mssql-conf/mssqlconfhelper.py", line 964, in setupSqlServer
if not checkInstall():
File "/opt/mssql/lib/mssql-conf/mssqlconfhelper.py", line 934, in checkInstall
return runScript(checkInstallScript, runAsRoot) == 0
File "/opt/mssql/lib/mssql-conf/mssqlconfhelper.py", line 915, in runScript
process = subprocess.run([pathToScript], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
AttributeError: 'module' object has no attribute 'run'
Uwaga 16.
Błąd mssql-conf instalacji może wystąpić w systemach, w których program Microsoft SQL Server na platformie obsługiwanej przez system Linux (RHEL, SLES, Ubuntu) zawiera środowisko Python 3 lub inną wersję, która jest starsza niż 3.5. Aby uzyskać więcej informacji na temat programu SQL Server na platformach obsługiwanych przez system Linux, zobacz Obsługiwane platformy.
Przyczyna
Ten błąd występuje, ponieważ program SQL Server 2019 i mssql-conf kod korzystają z funkcji języka Python w wersji 3.5 lub nowszej.
Rozwiązanie
Istnieją dwie opcje obejścia tego problemu:
Uaktualnij środowisko Python 3 do wersji 3.5 lub nowszej. Ustaw system, aby po uruchomieniu
/usr/bin/env python3 -Vpolecenia wskazywać język Python w wersji 3.5 lub 3.5 lub nowszej.Uwaga: zauważyliśmy, że niektóre funkcje systemowe, które korzystają z wersji języka Python starszych niż 3,5, przestają działać po tym uaktualnieniu. Aby uniknąć tego problemu, użyj następnej opcji.
Utwórz symlink w sesji, który wskazuje język Python 3 na język Python 3.5 lub 3.5 lub nowszy, a następnie uruchom
mssql-confpolecenia w celu skonfigurowania programu SQL Server. Aby uzyskać więcej informacji, zapoznaj się z następną sekcją.
Tworzenie linku symlinku (link nietrwały) języka Python 3
Wykonaj następujące kroki, aby utworzyć link specyficzny dla sesji, w którym język Python 3 wskazuje język Python 3.5 lub nowszą wersję, a następnie uruchom mssql-conf instalatora.
Zainstaluj środowisko Python w wersji 3.5 lub nowszej. W tym przykładzie zainstaluj język Python 3.6:
zypper in python36Zainstaluj program SQL Server.
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2019.repo sudo zypper --gpg-auto-import-keys refresh sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo zypper install -y mssql-serverPrzejdź do użytkownika głównego, utwórz link symlinku w dowolnym folderze, a następnie dodaj bieżącą ścieżkę do
$PATH. Na przykład /usr/bin/env python3 -V symlink wskazuje język Python 3.6 zamiast python 3.4, jak pokazano w poniższym fragmencie kodu:$sudo su testslesvm2:~ #:> sudo ln -s /usr/bin/python3.6 python3 testslesvm2:~ # > PATH=$(pwd):$PATH testslesvm2:~ # ll total 4 -rw------- 1 root root 982 Feb 9 20:03 .bash_history drwx------ 2 root root 111 Jan 26 08:50 .gnupg drwx------ 2 root root 29 Feb 9 19:27 .ssh drwxr-xr-x 2 root root 6 Jun 27 2017 bin lrwxrwxrwx 1 root root 18 Feb 9 19:47 python3 -> /usr/bin/python3.6 testslesvm2:~ # /usr/bin/env python3 -V Python 3.6.15mssql-confUruchom instalatora lub innemssql-confpolecenia oparte na:/opt/mssql/bin/mssql-conf setupJeśli chcesz uruchomić polecenie
mssql-confw przyszłości w celu skonfigurowania programu SQL Server, przełącz się do użytkownika głównego, a następnie uruchomPATH=$(pwd):$PATHpolecenie , aby dodać bieżącą ścieżkę do zmiennej środowiskowej$PATH. Następnie uruchommssql-confpolecenie, jak pokazano w kroku 4.
Zobacz też
Ponieważ język Python 3.4 osiągnął już stan EOL (koniec życia) i nie będzie już otrzymywać aktualizacji zabezpieczeń, zalecamy użycie obsługiwanej, nowszej wersji języka Python. Aby uzyskać więcej informacji, zobacz Python | endoflife.date.
Wyłączenie odpowiedzialności za kontakty z osobami trzecimi
Firma Microsoft udostępnia informacje kontaktowe innych firm, aby uzyskać dodatkowe informacje na temat tego tematu. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji kontaktowych innych firm.