ipython environment question
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Tue May 8 11:00:37 EDT 2007
In <mailman.7420.1178634651.32031.python-list at python.org>, Shane Geiger
wrote:
> Run the script and then try to change the variable project_name from the
> ipython prompt and then type create()
> and the new value you assigned will *not* be used. I tried to use "def
> create(project_name = project_name):" Even that didn't work.
>
> What slight of hand is necessary?
>
> import os, sys
>
> project_name = 'python_packages'
> group_name = 'sgeiger'
> repo = '/var/svn'
>
> def create(repo=repo,group_name=group_name,project_name=project_name):
> #def create():
> #os.system("sudo mkdir -p " + repo )
> #os.system("sudo svnadmin create " + repo)
> #os.system("sudo chown -R " + group_name + " " + repo)
> print "sudo mkdir -p " + repo + '/' + project_name
> print "sudo svnadmin create " + repo + '/' + project_name
> print "sudo chown -R " + group_name + " " + repo + '/' + project_name
>
> if __name__ == '__main__':
> sys.argv.append('-cl')
> from IPython.Shell import IPShellEmbed
> ipshell = IPShellEmbed()
> print "Please set these variables: project_name, group_name ...and
> then type create()"
> ### I even tried to put all my
> ipshell() # this call anywhere in your program will start IPython
You have to call the function with arguments. The default values are only
evaluated once when the ``def`` statement is executed, not every time the
function is called.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list