diff options
author | Guido van Rossum <guido@python.org> | 1998-08-05 21:10:09 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-08-05 21:10:09 (GMT) |
commit | bc160b50c58e7f45d0d4bc91ae5a42d50da6769f (patch) | |
tree | c0882e5293d87c1991a4beb5e51b92e5effd288c /PC/setup_nt | |
parent | 41b4f3875bea9d8d38f8d52de28949b313523ef1 (diff) | |
download | cpython-bc160b50c58e7f45d0d4bc91ae5a42d50da6769f.zip cpython-bc160b50c58e7f45d0d4bc91ae5a42d50da6769f.tar.gz cpython-bc160b50c58e7f45d0d4bc91ae5a42d50da6769f.tar.bz2 |
Getting rid of this ancient stuff.
Diffstat (limited to 'PC/setup_nt')
-rw-r--r-- | PC/setup_nt/readme.txt | 173 | ||||
-rw-r--r-- | PC/setup_nt/setup.bat | 1 | ||||
-rw-r--r-- | PC/setup_nt/setup.py | 271 | ||||
-rw-r--r-- | PC/setup_nt/uninstall.bat | 11 | ||||
-rw-r--r-- | PC/setup_nt/uninstall.py | 78 |
5 files changed, 0 insertions, 534 deletions
diff --git a/PC/setup_nt/readme.txt b/PC/setup_nt/readme.txt deleted file mode 100644 index 7e35b01..0000000 --- a/PC/setup_nt/readme.txt +++ /dev/null @@ -1,173 +0,0 @@ -(I had no time to update and test this directory. It is provided -for your information only.) - -Python 1.4beta3 for Windows NT 3.5 and Windows 95 -================================================= - -The zip file pyth14b3.zip contains a preliminary binary release of -Python 1.4beta3 for Windows NT 3.5 and Windows '95, with Tcl/Tk -support. The installation has not been tested on Windows 3.1 with -Win32s. For general information on Python, see -http://www.python.org/. - - -To install ----------- - -Unzip the archive on a file system with enough space. It will create -a directory Python1.4b3 containing subdirectories Bin and Lib and some -files, including setup.bat, setup.py, uninstall.bat, and uninstall.py. -(If you don't have a zip program that supports long filenames, get the -file winzip95.exe and install it -- this is WinZip 6.1 for 32-bit -Windows systems.) - -Run the SETUP.BAT file found in directory just created. When it is -done, press Enter. - -Tcl/Tk support requires additional installation steps, see below. - - -To use ------- - -Python runs in a console (DOS) window. From the File Manager, run the -file python.exe found in the Bin subdirectory. You can also drag it -to a program group of your choice for easier access. Opening any file -ending in .py from the file manager should run it. - - -To use with Tkinter -------------------- - -Get the file win41p1.exe from /pub/python/nt/ on ftp.python.org or -from ftp site ftp.sunlabs.com, directory /pub/tcl/. This is a -self-extracting archive containing the Tcl/Tk distribution for Windows -NT. Don't use an older version. - -Using the control panel, set the TCL_LIBRARY and TK_LIBRARY -environment variables. E.g. if you installed Tcl/Tk in C:\TCL (the -default suggested by the installer), set TCL_LIBRARY to -"C:\TCL\lib\tcl7.5" and set TK_LIBRARY to "C:\TCL\lib\tk4.1". Also -add the directory "C:\TCL\bin" (or whereever the Tcl bin directory -ended up) to the PATH environment variable. - -On Windows '95, you need to edit AUTOEXEC.BAT for this, e.g. by adding -the lines - - SET TCL_LIBRARY=C:\Program Files\TCL\lib\tcl7.5 - SET TK_LIBRARY=C:\Program Files\TCL\lib\tk4.1 - SET PATH="%PATH%";"C:\Program Files\TCL\bin" - -(substituting the actual location of the TCL installation directory). - -Once Tcl/Tk is installed, you should be able to type the following -commands in Python: - - >>> import Tkinter - >>> Tkinter._test() - -This creates a simple test dialog box (you may have to move the Python -window a bit to see it). Click on OK to get the Python prompt back. - - -Troubleshooting ---------------- - -The following procedure will test successive components required for -successful use of Python and Tkinter. The steps before "import -_tkinter" can be used to verify the proper installation of the Python -core. - -- First, run the Python interpreter (python.exe). This should give -you a ">>>" prompt in a "MS-DOS console" window. This may fail with a -complaint about being unable to find the file MSVC40RT.DLL. This file -(along with several other files) is included in the MSOFTDLL.EXE -self-extracting archive available in the /pub/python/wpy directory on -ftp.python.org. After extraction, move MSVCRT40.NT to -\Windows\System\MSVCRT40.DLL (note the change of extension). - -- If you can't get a ">>>" prompt, your core Python installation may -be botched. Reinstall from the ZIP file (see above) and run -SETUP.BAT. - -- At the ">>>" prompt, type a few commands. Each command should -succeed without complaints. Remember that Python is a case sensitive -language, so type the commands exactly as shown ("tkinter" and -"Tkinter" are two very different things). - ->>> import sys - - If this fails, you can't type :-) (Explanation: this is a - built-in module that is pre-initialized before the first ">>>" - prompt is printed. There is no way that this import can fail - except by a typo.) - ->>> import string - - If this fails, the Python library cannot be found. Reinstall - Python. (Explanation: the registry entry for PythonPath is - botched. Inspect sys.path to see what it is. If it is - something like ['.', '.\\lib', '.\\lib\\win'], the setup.py - script has not run successfully and you may get away with - rerunning the SETUP.BAT file.) - ->>> import _tkinter - - This can fail in a number of ways: - - ImportError: No module named _tkinter - The Python module file _tkinter.dll can't be found. - Since it is installed by default, the installation is - probably botched. Reinstall Python. - - ImportError: DLL load failed: The specified module could not - be found. (Possibly with a dialog box explaining that - TCL75.DLL or TK41.DLL could not be found.) - Probably a Tcl/Tk installation error. Reinstall Tcl/Tk. - Note that on Windows '95, you may need to add the Tcl - bin directory to the PATH environment variable. - - Other failures: - It may be possible that you have an early prerelease - TCL75.DLL or TK41.DLL, which is incompatible with the - _tkinter module in the Python distribution. This will - most likely result in error messages that don't make a - lot of sense. Try installing Tcl/Tk from the - win41p1.exe self-extracting archive found in - /pub/python/nt on ftp.python.org. - ->>> import Tkinter - - If this fails, your Python library or sys.path is botched. - Your best bet, again, is to reinstall Python. - ->>> Tkinter._test() - - This should pop up a window with a label ("Proof-of-existence - test for TK") and two buttons ("Click me!" and "QUIT"). - If you get nothing at all (not even a ">>>" prompt), the - window is probably hiding behind the Python console window. - Move the console window around to reveal the test window. - - If you get an exception instead, it is most likely a verbose - complaint from Tcl/Tk about improper installation. This is - usually caused by bad or missing values for the environment - variables TK_LIBRARY or TCL_LIBRARY. See the installation - instructions above. - - -To uninstall ------------- - -Run the batch file UNINSTALL.BAT. This will run the Python script -uninstall.py, which undoes the registry additions and removes most -installed files. The batch file then proceed to remove some files -that the Python script can't remove (because it's using them). The -batch file ends with an error because it deletes itself. Hints on how -to avoid this (and also on how to remove the installation directory -itself) are gracefully accepted. - - -September 3, 1996 - ---Guido van Rossum (home page: http://www.python.org/~guido/) diff --git a/PC/setup_nt/setup.bat b/PC/setup_nt/setup.bat deleted file mode 100644 index 2c6effc..0000000 --- a/PC/setup_nt/setup.bat +++ /dev/null @@ -1 +0,0 @@ -bin\python.exe -i .\setup.py diff --git a/PC/setup_nt/setup.py b/PC/setup_nt/setup.py deleted file mode 100644 index 52d266b..0000000 --- a/PC/setup_nt/setup.py +++ /dev/null @@ -1,271 +0,0 @@ -"""Setup script for Windows NT 3.5 and Windows 95. - -Run this with the current directory set to the Python ``root''. -""" - -import sys -import strop - -del sys.path[1:] - -try: - import nt -except ImportError: - print "This script should only be run on a Windows (NT or '95) system." - sys.exit(1) - -try: - sys.winver - print "This Python version appears to be", sys.winver -except NameError: - print "Huh? sys.winver is not defined!" - sys.exit(1) - -# Try to import a common module that *should* work. -print "Looking for Python root directory..." -while 1: - pwd = nt.getcwd() - ##print "Could it be", `pwd`, "?" - try: - open("Lib\\os.py").close() - ##print "It appears so." - break - except IOError: - ##print "Hm, it doesn't appear to be. Try the parent directory." - try: - opwd = pwd - nt.chdir("..") - pwd = nt.getcwd() - if opwd == pwd: - ##print "Seems like we're in the root already." - raise nt.error - except nt.error: - ##print "Can't chdir to the parent -- we're stuck." - pass - else: - ##print "Try again one level higher." - continue - print "Hey, would you like to help?" - print "Please enter the pathname of the Python root." - while 1: - try: - dirname = raw_input("Python root: ") - except EOFError: - print "OK, I give up." - sys.exit(1) - if not dirname: - continue - try: - nt.chdir(dirname) - except nt.error: - print "That directory doesn't seem to exist." - print "Please try again." - else: - break -pwd = nt.getcwd() -print "Python root directory is", pwd -sys.path[1:] = [".\\Lib", ".\\Lib\win", ".\\Bin", ".\\vc40"] - -# Now we should be in a position to import win32api and win32con - -try: - import win32api -except ImportError: - print "Blech. We *still* can't import win32api." - print "Giving up." - sys.exit(1) -try: - import win32con -except ImportError: - print "Beh. We have win32api but not win32con." - print "Making do with a dummy." - class win32con: - REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002L - REG_NOTIFY_CHANGE_SECURITY = 0x00000008L - REG_RESOURCE_REQUIREMENTS_LIST = 10 - REG_NONE = 0 - REG_SZ = 1 - REG_EXPAND_SZ = 2 - REG_BINARY = 3 - REG_DWORD = 4 - REG_DWORD_LITTLE_ENDIAN = 4 - REG_DWORD_BIG_ENDIAN = 5 - REG_LINK = 6 - REG_MULTI_SZ = 7 - REG_RESOURCE_LIST = 8 - REG_FULL_RESOURCE_DESCRIPTOR = 9 - HKEY_CLASSES_ROOT = 0x80000000 - HKEY_CURRENT_USER = 0x80000001 - HKEY_LOCAL_MACHINE = 0x80000002 - HKEY_USERS = 0x80000003 - HKEY_PERFORMANCE_DATA = 0x80000004 - HKEY_PERFORMANCE_TEXT = 0x80000050 - HKEY_PERFORMANCE_NLSTEXT = 0x80000060 - - -def listtree(handle, level=0): - i = 0 - while 1: - try: - key = win32api.RegEnumKey(handle, i) - except win32api.error: - break - try: - value = win32api.RegQueryValue(handle, key) - except win32api.error, msg: - try: - msg = msg[2] - except: - pass - value = "*** Error: %s" % str(msg) - print " "*level + "%s: %s" % (key, value) - subhandle = win32api.RegOpenKey(handle, key) - listtree(subhandle, level+1) - win32api.RegCloseKey(subhandle) - i = i+1 - -roothandle = win32con.HKEY_LOCAL_MACHINE -pythonkey = "Software\\Python" -try: - pythonhandle = win32api.RegOpenKey(roothandle, pythonkey) -except win32api.error: - pythonhandle = win32api.RegCreateKey(roothandle, pythonkey) - -## listtree(pythonhandle) -## try: -## handle = win32api.RegOpenKey(pythonhandle, "JustTesting") -## except win32api.error, msg: -## try: msg = msg[2] -## except: pass -## ##print "Error opening, try creating instead:", msg -## handle = win32api.RegCreateKey(pythonhandle, "JustTesting") -## win32api.RegSetValue(handle, "test1", win32con.REG_SZ, "NO!") -## win32api.RegSetValue(handle, "test2", win32con.REG_SZ, "YES!") -## win32api.RegDeleteKey(handle, "test1") -## win32api.RegDeleteKey(handle, "test2") -## win32api.RegCloseKey(handle) -## win32api.RegDeleteKey(pythonhandle, "JustTesting") -## listtree(pythonhandle) - -print "Setting PythonPath..." -corekey = "PythonCore\\%s" % sys.winver -try: - corehandle = win32api.RegOpenKey(pythonhandle, corekey) -except win32api.error, msg: - corehandle = win32api.RegCreateKey(pythonhandle, corekey) -path = [] -pwd = nt.getcwd() -for i in ["Bin", - "Lib", - "Lib\\win", - "Lib\\tkinter", - "Lib\\test", - "Lib\\dos_8x3"]: - i = pwd + "\\" + i - path.append(i) -sys.path[1:] = path -pathvalue = strop.join(path, ";") -#print "Setting PythonPath to", pathvalue -win32api.RegSetValue(corehandle, "PythonPath", win32con.REG_SZ, pathvalue) -win32api.RegCloseKey(corehandle) -#listtree(pythonhandle) -win32api.RegCloseKey(pythonhandle) - -print "Registering uninstaller..." -pwd = nt.getcwd() -uninstaller = '"%s\\uninstall.bat" "%s"' % (pwd, pwd) -uninstallkey = \ - "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Python"+sys.winver -try: - uihandle = win32api.RegOpenKey(roothandle, uninstallkey) -except win32api.error, msg: - uihandle = win32api.RegCreateKey(roothandle, uninstallkey) -win32api.RegSetValueEx(uihandle, "DisplayName", None, win32con.REG_SZ, - "Python "+sys.winver) -win32api.RegSetValueEx(uihandle, "UninstallString", None, win32con.REG_SZ, - uninstaller) -win32api.RegCloseKey(uihandle) - -print "Registering Python Interpreter as shell for *.py files..." -pwd = nt.getcwd() -interpreter = '"%s\\Bin\\python.exe" -i "%%1"' % pwd -print "Interpreter command is", interpreter -root = win32con.HKEY_CLASSES_ROOT -sz = win32con.REG_SZ -win32api.RegSetValue(root, ".py", sz, "Python.Script") -win32api.RegSetValue(root , "Python.Script", sz, "Python Script") -win32api.RegSetValue(root , "Python.Script\\Shell\\Open\\Command", sz, - interpreter) - -import compileall -print "Compiling all library modules..." -compileall.main() - -print "Installation complete." - -envkeys = map(strop.upper, nt.environ.keys()) -if 'PYTHONPATH' in envkeys: - print """ -********************************************************************** -WARNING! -You have set the environment variable PYTHONPATH. -This will override the default Python module search path -and probably cause you to use an old or broken Python installation. -Go into your control panel *now* and delete PYTHONPATH! -********************************************************************** -""" - -raw_input("Press Enter to exit: ") -sys.exit(0) - - -registry_doc = """Summary of the Win32 API Registry interfaces. - -Concepts: - A _directory_ is a collection of key/value pairs. - You need a _handle_ for a directory to do anything with it. - There are some predefined keys, e.g. HKEY_LOCAL_MACHINE. - A _key_ is an ASCII string; NT file system conventions apply. - A _value_ has a type and some data; there are predefined types - (e.g. REG_SZ is a string, REG_DWORD is a 4-byte integer). - There's some fishiness in that in fact multiple, named values - can appear under each key, but this seems little used (in this - case, the value is best seen as a structured value). - A key can also refer to a _subdirectory_. In this case the - associated value is typically empty. To get a handle for a - subdirectory, use RegOpenKey(handle, key). The key can also - be a backslash-separated path, so you can go directly from one of - the predefined keys to the directory you are interested in. - -Most common functions: - RegOpenKey(handle, keypath) -> handle - Get a handle for an existing subdirectory - RegCreateKey(handle, keypath) -> handle - Get a handle for a new subdirectory - RegDeleteKey(handle, key) - Delete the given subdirectory -- must be empty - RegCloseKey(handle) - Close a handle - RegGetValue(handle, subkey) -> string - Get the (unnamed) value stored as key in handle - RegSetValue(handle, subkey, type, value) - Set the (unnamed) value stored as key in handle, with given - type; type should be REG_SZ - RegSetValueEx(handle, name, reserved, type, value) - Set the value with given name to the given type and value; - currently reserved is ignored and type should be REG_SZ - -Functions to list directory contents (start counting at 0, fail if done): - RegEnumKey(handle, i) - Return the i'th subkey - RegEnumValue(handle, i) - Return the i'th name and value - -Lesser used functions: - RegFlushKey(handle) - Flush the changes to the handle to disk (like Unix sync()) - RegSaveKey(handle, filename, reserved) - Save the contents to a disk file (broken?!) - RegLoadKey(handle, keypath, filename) - Load the contents from a disk file (lots of restrictions!) -""" diff --git a/PC/setup_nt/uninstall.bat b/PC/setup_nt/uninstall.bat deleted file mode 100644 index 2806285..0000000 --- a/PC/setup_nt/uninstall.bat +++ /dev/null @@ -1,11 +0,0 @@ -cd "%1" -bin\python.exe uninstall.py -del lib\win\*.pyc -del lib\win\*.pyd -del lib\win\*.py -rd lib\win -rd lib -del bin\*.exe -del bin\*.dll -rd bin -del uninstall.* diff --git a/PC/setup_nt/uninstall.py b/PC/setup_nt/uninstall.py deleted file mode 100644 index f147729..0000000 --- a/PC/setup_nt/uninstall.py +++ /dev/null @@ -1,78 +0,0 @@ -"""Uninstaller for Windows NT 3.5 and Windows 95. - -Actions: - -1. Remove our entries from the Registry: - - Software\Python\PythonCore\<winver> - - Software\Microsoft\Windows\CurrentVersion\Uninstall\Python<winver> - (Should we also remove the entry for .py and Python.Script?) - -2. Remove the installation tree -- this is assumed to be the directory - whose path is both os.path.dirname(sys.argv[0]) and sys.path[0] - -""" - -import sys -import nt -import os -import win32api -import win32con - -def rmkey(parent, key, level=0): - sep = " "*level - try: - handle = win32api.RegOpenKey(parent, key) - except win32api.error, msg: - print sep + "No key", `key` - return - print sep + "Removing key", key - while 1: - try: - subkey = win32api.RegEnumKey(handle, 0) - except win32api.error, msg: - break - rmkey(handle, subkey, level+1) - win32api.RegCloseKey(handle) - win32api.RegDeleteKey(parent, key) - print sep + "Done with", key - -roothandle = win32con.HKEY_LOCAL_MACHINE -pythonkey = "Software\\Python\\PythonCore\\" + sys.winver -rmkey(roothandle, pythonkey) -uninstallkey = \ - "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Python"+sys.winver -rmkey(roothandle, uninstallkey) - -def rmtree(dir, level=0): - sep = " "*level - print sep+"rmtree", dir - for name in os.listdir(dir): - if level == 0 and \ - os.path.normcase(name) == os.path.normcase("uninstall.bat"): - continue - fn = os.path.join(dir, name) - if os.path.isdir(fn): - rmtree(fn, level+1) - else: - try: - os.remove(fn) - except os.error, msg: - print sep+" can't remove", `fn`, msg - else: - print sep+" removed", `fn` - try: - os.rmdir(dir) - except os.error, msg: - print sep+"can't remove directory", `dir`, msg - else: - print sep+"removed directory", `dir` - -pwd = os.getcwd() -scriptdir = os.path.normpath(os.path.join(pwd, os.path.dirname(sys.argv[0]))) -pathdir = os.path.normpath(os.path.join(pwd, sys.path[0])) -if scriptdir == pathdir: - rmtree(pathdir) -else: - print "inconsistend script directory, not removing any files." - print "script directory =", `scriptdir` - print "path directory =", `pathdir` |