By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,621 Members | 1,074 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,621 IT Pros & Developers. It's quick & easy.

ipython environment question

P: n/a
"""
I'm trying to import ipython shell (which works great!) to set some
variables and then run a function (which doesn't work).
It seems like such a simple thing. Here's an example script to show
what I'm trying to do.

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_nam e=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

--
Shane Geiger
IT Director
National Council on Economic Education
sg*****@ncee.net | 402-438-8958 | http://www.ncee.net

Leading the Campaign for Economic and Financial Literacy
May 8 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
In <ma***************************************@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_nam e=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
May 8 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.