Running python from a usb drive

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • cjl

    #1

    Running python from a usb drive

    Hey:

    I am trying to run python from a usb drive under windows xp. I
    installed python "for this user" on to a machine, then copied the
    entire Python24 directory to the usb drive.

    I have the following in a batch file at the root of the drive:

    @path=%PATH%;%C D%Python24;%CD% Python24\libs;% CD%Python24\Scr ipts;%CD%Python 24\Lib\site-packages;%CD%Py thon24\DLLs
    @set pythonpath = %CD%Python24
    @cmd

    When I double click the file and type 'python' at the prompt I am in a
    working python environment, and I am able to import modules in the
    site-packages directory (in this case, django).

    However, when I run a script directly from the cmd prompt (in this case
    'django-admin.py' the script runs, but fails to import modules from the
    site-packages directory.

    Is there a command line option to python.exe or an environment variable
    I can set to remedy this?

    Any other thoughts?

    Thanks in advance,
    CJL

  • Jordan

    #2
    Re: Running python from a usb drive

    If making a usb version of python was that easy, movable python would
    be open source. Check out http://www.voidspace.org.uk/python/movpy/ if
    you need a portable usb version of python for work or something.
    Copying the Python24 directory is a good start, but doesn't include the
    enormous number of registry keys that are included in the install and
    are probably needed for the complete capabilites of python. I really
    hope I didn't missunderstand what you were asking about -_-;
    Environmental Variables? Try setting the user/system variable
    "pythonpath "
    cjl wrote:
    Hey:
    >
    I am trying to run python from a usb drive under windows xp. I
    installed python "for this user" on to a machine, then copied the
    entire Python24 directory to the usb drive.
    >
    I have the following in a batch file at the root of the drive:
    >
    @path=%PATH%;%C D%Python24;%CD% Python24\libs;% CD%Python24\Scr ipts;%CD%Python 24\Lib\site-packages;%CD%Py thon24\DLLs
    @set pythonpath = %CD%Python24
    @cmd
    >
    When I double click the file and type 'python' at the prompt I am in a
    working python environment, and I am able to import modules in the
    site-packages directory (in this case, django).
    >
    However, when I run a script directly from the cmd prompt (in this case
    'django-admin.py' the script runs, but fails to import modules from the
    site-packages directory.
    >
    Is there a command line option to python.exe or an environment variable
    I can set to remedy this?
    >
    Any other thoughts?
    >
    Thanks in advance,
    CJL

    Comment

    • cjl

      #3
      Re: Running python from a usb drive

      Jordan:

      Thank you for your reply.
      If making a usb version of python was that easy, movable python would
      be open source.
      I knew about movable python, but I'm not using it because it's not open
      source. I guess those guys but some work into it, and feel like a small
      fee is appropriate, but I guess I would rather use something open, even
      if it means I have to make it myself.
      Copying the Python24 directory is a good start, but doesn't include the
      enormous number of registry keys that are included in the install and
      are probably needed for the complete capabilites of python.
      Is the source of the windows python installer available? I guess I
      could see what registry keys they are setting...
      Environmental Variables? Try setting the user/system variable "pythonpath "
      I do set pythonpath, see above.

      Any other ideas?

      Thanks again,
      CJL

      Comment

      • Uwe Hoffmann

        #4
        Re: Running python from a usb drive

        cjl schrieb:
        >
        >
        I do set pythonpath, see above.
        >
        is pythonpath really case insensitive on windows ?

        Comment

        • Steve Holden

          #5
          Re: Running python from a usb drive

          Uwe Hoffmann wrote:
          cjl schrieb:
          >
          >
          >>
          >>I do set pythonpath, see above.
          >>
          >
          is pythonpath really case insensitive on windows ?
          Only because the Windows filesystem implements case-insensitive
          semantics. This is nothing to do with Python:

          C:\Steve\Projec ts\Python\dbimp >dir DB.py
          Volume in drive C has no label.
          Volume Serial Number is 9CA8-2A02

          Directory of C:\Steve\Projec ts\Python\dbimp

          01/19/2005 06:03 PM 136 db.py
          1 File(s) 136 bytes
          0 Dir(s) 15,908,880,384 bytes free

          C:\Steve\Projec ts\Python\dbimp >dir db.py
          Volume in drive C has no label.
          Volume Serial Number is 9CA8-2A02

          Directory of C:\Steve\Projec ts\Python\dbimp

          01/19/2005 06:03 PM 136 db.py
          1 File(s) 136 bytes
          0 Dir(s) 15,908,880,384 bytes free


          regards
          Steve
          --
          Steve Holden +44 150 684 7255 +1 800 494 3119
          Holden Web LLC/Ltd http://www.holdenweb.com
          Skype: holdenweb http://holdenweb.blogspot.com
          Recent Ramblings http://del.icio.us/steve.holden

          Comment

          • Uwe Hoffmann

            #6
            Re: Running python from a usb drive

            Steve Holden schrieb:
            Uwe Hoffmann wrote:
            >
            >cjl schrieb:
            >>
            >>
            >>>
            >>I do set pythonpath, see above.
            >>>
            >>
            >is pythonpath really case insensitive on windows ?
            >
            >
            Only because the Windows filesystem implements case-insensitive
            semantics. This is nothing to do with Python:
            no, i mean't the name not the content. Is the handling of the
            env variable pythonpath case insensitive: pythonpath <--PYTHONPATH.

            regards
            uwe

            Comment

            • cjl

              #7
              Re: Running python from a usb drive

              Uwe:

              Thank you for your reply.
              is pythonpath really case insensitive on windows ?
              I think so. After running my batch file, I can load the python
              interpreter by typing 'python', and can then type 'import django'
              without error. This lives in the site-packages directory, so it is
              finding it.

              However, there is a python script that lives in python24\Script s called
              'django-admin.py', which I am adding to my path. When I type
              'django-admin.py --help' I get an error that it couldn't load the
              django module. When I type 'python E:\python24\dja ngo-admin.py --help'
              I get the correct output, and no errors, so I know it is loading the
              module.

              I guess I am trying to figure out why, and what the top "shebang" line
              should be for the script django-admin.py, because the removable drive
              can have different drive letters, so I can't hard code it.

              thanks again,
              CJL

              Comment

              • Steve Holden

                #8
                Re: Running python from a usb drive

                Uwe Hoffmann wrote:
                Steve Holden schrieb:
                >
                >>Uwe Hoffmann wrote:
                >>
                >>
                >>>cjl schrieb:
                >>>
                >>>
                >>>
                >>>>I do set pythonpath, see above.
                >>>>
                >>>
                >>>is pythonpath really case insensitive on windows ?
                >>
                >>
                >>Only because the Windows filesystem implements case-insensitive
                >>semantics. This is nothing to do with Python:
                >
                >
                no, i mean't the name not the content. Is the handling of the
                env variable pythonpath case insensitive: pythonpath <--PYTHONPATH.
                >
                You live and learn. Apparently it is:

                C:\Steve\Projec ts\Python\dbimp >set SCREWUP="This is Windows"

                C:\Steve\Projec ts\Python\dbimp >python
                Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on
                win32
                Type "help", "copyright" , "credits" or "license" for more information.
                Started with C:/Steve/.pythonrc
                >>import os; print os.environ["screwup"]
                "This is Windows"
                >>>
                It turns out that there's code in os.py specifically for os2 and NT
                systems, wherein a subclass of userDict is declared that used
                case-insensitive pattern matching:
                >>os.environ.__ class__
                <class os._Environ at 0x0098CCC0>
                >>>
                regards
                Steve
                --
                Steve Holden +44 150 684 7255 +1 800 494 3119
                Holden Web LLC/Ltd http://www.holdenweb.com
                Skype: holdenweb http://holdenweb.blogspot.com
                Recent Ramblings http://del.icio.us/steve.holden

                Comment

                • Thorsten Kampe

                  #9
                  Re: Running python from a usb drive

                  * cjl (2006-09-11 20:34 +0100)
                  >Copying the Python24 directory is a good start, but doesn't include the
                  >enormous number of registry keys that are included in the install and
                  >are probably needed for the complete capabilites of python.
                  >
                  Is the source of the windows python installer available? I guess I
                  could see what registry keys they are setting...
                  Simply installing Python would be about one hundred times faster...
                  >Environmenta l Variables? Try setting the user/system variable "pythonpath "
                  >
                  I do set pythonpath, see above.
                  >
                  Any other ideas?
                  Use Cywin Python.

                  Comment

                  • Thorsten Kampe

                    #10
                    Re: Running python from a usb drive

                    * Steve Holden (2006-09-11 21:37 +0100)
                    Uwe Hoffmann wrote:
                    >cjl schrieb:
                    >>>I do set pythonpath, see above.
                    >>
                    >is pythonpath really case insensitive on windows ?
                    >
                    Only because the Windows filesystem implements case-insensitive
                    semantics. This is nothing to do with Python:
                    That's nonsense: "Filenames are Case Sensitive on NTFS Volumes"[1]

                    Thorsten
                    [1] http://support.microsoft.com/kb/100625/en-us

                    Comment

                    • Steve Holden

                      #11
                      Re: Running python from a usb drive

                      Thorsten Kampe wrote:
                      * Steve Holden (2006-09-11 21:37 +0100)
                      >
                      >>Uwe Hoffmann wrote:
                      >>
                      >>>cjl schrieb:
                      >>>
                      >>>>I do set pythonpath, see above.
                      >>>
                      >>>is pythonpath really case insensitive on windows ?
                      >>
                      >>Only because the Windows filesystem implements case-insensitive
                      >>semantics. This is nothing to do with Python:
                      >
                      >
                      That's nonsense: "Filenames are Case Sensitive on NTFS Volumes"[1]
                      >
                      Thorsten
                      [1] http://support.microsoft.com/kb/100625/en-us
                      Sigh. Right, the semantics are actually inside the subsystem accessing
                      the filesystem, if I have to dot every I and cross every T. Note that
                      the reference you quote includes the test """However, if you attempt to
                      open one of these files in a Win32 application, such as Notepad, you
                      would only have access to one of the files, regardless of the case of
                      the filename you type in the Open File dialog box."""

                      So perhaps I should have said the Win32 API implements case-insensitive
                      semantics? Sure, if you want to use the POSIX compatibility layer it's
                      absolutely possible to create several files that Win32 applications will
                      be completely unable to distinguish between. Whatever good that might do
                      you.

                      Sheesh, the nits that get picked on this list nowadays. I can remember
                      when it used to be fun, not an exercise in ego inflation.

                      regards
                      Steve
                      --
                      Steve Holden +44 150 684 7255 +1 800 494 3119
                      Holden Web LLC/Ltd http://www.holdenweb.com
                      Skype: holdenweb http://holdenweb.blogspot.com
                      Recent Ramblings http://del.icio.us/steve.holden

                      Comment

                      • Thorsten Kampe

                        #12
                        Re: Running python from a usb drive

                        * Steve Holden (2006-09-12 01:30 +0100)
                        Thorsten Kampe wrote:
                        >* Steve Holden (2006-09-11 21:37 +0100)
                        >>>Uwe Hoffmann wrote:
                        >>>>cjl schrieb:
                        >>>>
                        >>>>>I do set pythonpath, see above.
                        >>>>
                        >>>>is pythonpath really case insensitive on windows ?
                        >>>
                        >>>Only because the Windows filesystem implements case-insensitive
                        >>>semantics. This is nothing to do with Python:
                        >>
                        >That's nonsense: "Filenames are Case Sensitive on NTFS Volumes"[1]
                        >>
                        >Thorsten
                        >[1] http://support.microsoft.com/kb/100625/en-us
                        >
                        Sigh. Right, the semantics are actually inside the subsystem accessing
                        the filesystem, if I have to dot every I and cross every T. Note that
                        the reference you quote includes the test """However, if you attempt to
                        open one of these files in a Win32 application, such as Notepad, you
                        would only have access to one of the files, regardless of the case of
                        the filename you type in the Open File dialog box."""
                        >
                        So perhaps I should have said the Win32 API implements case-insensitive
                        semantics? Sure, if you want to use the POSIX compatibility layer it's
                        absolutely possible to create several files that Win32 applications will
                        be completely unable to distinguish between. Whatever good that might do
                        you.
                        >
                        Sheesh, the nits that get picked on this list nowadays. I can remember
                        when it used to be fun, not an exercise in ego inflation.
                        It's exactly the same issue as with the environment variables: "You
                        live and learn."[1]

                        Thorsten
                        [1] http://groups.google.com/group/comp....9fa3ce96e757b3

                        Comment

                        • cjl

                          #13
                          Re: Running python from a usb drive

                          Hey all:

                          I'm getting closer. My startpython.bat file is now:

                          path=%PATH%;%CD %Python24;%CD%P ython24\libs;%C D%Python24\Scri pts;%CD%Python2 4\Lib\site-packages;%CD%Py thon24\DLLs
                          set PYTHONPATH=%CD% Python24
                          ASSOC .py=Python.File
                          ASSOC .pyc=Python.Com piledFile
                          ASSOC .pyo=Python.Com piledFile
                          ASSOC .pyw=Python.NoC onFile
                          FTYPE Python.File=%CD %Python24\pytho n.exe "%1" %*
                          FTYPE Python.Compiled File=%CD%Python 24\python.exe "%1" %*
                          FTYPE Python.NoConFil e=%CD%Python24\ pythonw.exe "%1" %*
                          set PATHTEXT=%PATHT EXT%;.py;.pyc;. pyo;.pyw
                          cmd

                          I am having a problem with the ftype commands as written above. If I
                          type them from the command line exactly like above they work. But for
                          some reason they do not work from my batch file. Anyone familiar with
                          bath file syntax that can help me? I am very close here...

                          Thanks again,
                          CJL

                          Comment

                          • cjl

                            #14
                            Re: Running python from a usb drive

                            Hey all:

                            It seems no matter what I do the %1 gets replaced by paramaters sent to
                            the batch file...there must be some way of "escaping" this, but I can't
                            find the answer (yet) with google. Anyone?

                            -CJL

                            Comment

                            • Jason

                              #15
                              Re: Running python from a usb drive

                              cjl wrote:
                              Hey all:
                              >
                              It seems no matter what I do the %1 gets replaced by paramaters sent to
                              the batch file...there must be some way of "escaping" this, but I can't
                              find the answer (yet) with google. Anyone?
                              >
                              -CJL
                              Use two percents in a row turn into a single percentage sign. So you'd
                              want "%%1".

                              --Jason

                              Comment

                              Working...