【发布时间】:2015-08-28 07:54:58
【问题描述】:
我已经分别使用 notepad++ 和 text-wrangler 在 win pc 和 mac osx 上设置了我的编程环境。在两台计算机上,我都设置了 python34->lib-> site-packages 的快捷方式/别名,因此我可以从解释器提示符快速导入我的程序。在 win pc 上,我已将这一行包含在环境变量路径中:
C:\Python34;C:\Python34\Scripts;C:\Python34\Lib\site-packages
这允许我从 cmd 访问 python 3.4 在 OSX 终端上,我只需键入 python3 即可启动解释器
所有这些都非常适合运行我在教科书中处理的小代码示例,但为什么导入模块中的变量似乎只是临时的?在空闲时,如果我打开同一个文件并运行 变量仍然被识别。
例子
test.py
word = 'pizza'
print(
'''
Slicing "Cheat Sheet"
0 1 2 3 4 5
+---+---+----+----+----+
| p | i | z | z | a |
+---+---+----+---+-----+
-5 -4 -3 -2 -1
'''
)
print ('Enter the beginning and ending index for your slice of "pizza".')
print ('Press the enter key at the "Begin" to exit.')
start = ''
while start == '':
start = (input('\nStart: '))
if start:
start = int(start)
finish = int(input('Finish: '))
print('word [', start, ':', finish, '] is', end=' ')
print(word[start:finish])
input ('\n\nPress the enter key to exit.')
在 cmd 或终端导入它会运行代码。但是在提示符下输入变量词后会给出
nameerror name 'word' is not defined
而在模块运行后的 IDLE 中,输入变量 word 将给出分配的表达式“pizza”。为什么是这样?
【问题讨论】:
-
您应该使用
python -i test.py运行脚本,然后在 Python 的 shell 中与结果进行交互。 -
另外,从
PATH中删除site-packages目录。该目录中不应该有脚本,只有通过 Python 的sys.path找到的模块。 -
python -i test.py 不起作用。 Returns 'can't open file test.py: [Errno 2] no such file or directory.
-
还从 PATH 中删除了站点包目录并安装了 PIP 和 setuptools 所以希望这将允许我安装和运行我的脚本。
-
将 PYTHONPATH 变量添加到 Windows 环境变量中,并将我的目录作为值。不要认为我在这个阶段真的需要 PIP 和 setuptools,因为我没有编写供其他人使用的代码,但我确信当我弄清楚这些东西时,我可能会发现它们很有用。感谢 piezol 和 @eryksun