title
Installing Python 3 - How to install/use both Python 2 and Python 3
description
Sample code for this basics series: http://pythonprogramming.net/beginner-python-programming-tutorials/
Python 3 Programming tutorial Playlist: http://www.youtube.com/watch?v=oVp1vrfL_w4&feature=share&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
Everyone starts as a beginner. Hopefully I can help many of you out of that stage! Many people know they want to learn to program, but they are not sure which language to go with or where to start. Python is often chosen by beginners due to its "high level" nature. "High level" might make it sound like it is more complex or something, though it means the opposite. Python's syntax and other structuring is very simplistic and easy for even a beginner to follow. Many people find that they can actually read and understand what is going on with non-obfuscated Python code, even if they have no knowledge of Python or programming.
Python is certainly one of the top languages for its use, and has been referred to as the "second best language for anything." You can use Python for web development, data analysis, robotics, games, AI, and a whole lot more.
If you're looking to acquire the superpower of programming, I am here to help! If you stick around here enough, you'll find out that I like to belittle problems. Every major problem or goal can be broken down into parts. Learning to program is a massive undertaking. It can be extremely daunting for someone who is new to it. Luckily, the task of learning how to program can be broken down as well. Most programs are just combinations of a small handful of tools and operations built together to do awesome things. This is usually some if-statements in a few functions with a few loops and, boom, program! Let's take those baby steps.
In this tutorial, you are shown how to install Python 3, as well as how to maintain installations of both Python 2 and Python 3. When I was making this video, Python 3.4 beta was out, so the most current version might be 3.4. Downloading that will be fine and the tutorial information will be identical.
http://seaofbtc.com
http://sentdex.com
http://hkinsley.com
https://twitter.com/sentdex
Bitcoin donations: 1GV7srgR4NJx4vrk7avCmmVQQrqmv87ty6
detail
{'title': 'Installing Python 3 - How to install/use both Python 2 and Python 3', 'heatmap': [{'end': 423.229, 'start': 396.202, 'weight': 1}], 'summary': 'Learning python 3.3 offers numerous opportunities and quick creation, especially in data analysis, positioning it as a valuable superpower. the challenges and reasons for using different python versions, including the transition from python 2 to python 3, are discussed, highlighting the prevalence of python 2 usage in tutorial watchers and classroom settings as of 2014. the chapter covers python installation and basic usage on windows, including accessing python through the start bar and utilizing the command line, as well as running multiple python versions using idle, emphasizing the necessity of having both versions for programming purposes.', 'chapters': [{'end': 61.606, 'segs': [{'end': 61.606, 'src': 'embed', 'start': 0.049, 'weight': 0, 'content': [{'end': 8.417, 'text': 'Alright everyone, welcome to my Python 3, specifically Python 3.3, though it should work with pretty much anything throughout Python 3 series.', 'start': 0.049, 'duration': 8.368}, {'end': 11.88, 'text': 'For any of you, guys or girls, who are new to programming,', 'start': 9.178, 'duration': 2.702}, {'end': 18.326, 'text': 'I will just say that learning to program has been easily one of the best life choices of mine, definitely in the top three.', 'start': 11.88, 'duration': 6.446}, {'end': 23.692, 'text': "It's just given me so many options in life, and really my freedom to do what I want.", 'start': 19.027, 'duration': 4.665}, {'end': 29.619, 'text': 'So I do these videos because I hope that I can help other people get to the point like that.', 'start': 24.272, 'duration': 5.347}, {'end': 35.767, 'text': 'I really feel like at least these days knowing how to program is a lot like having a superpower.', 'start': 30.54, 'duration': 5.227}, {'end': 37.889, 'text': 'It sounds kind of funny but it really is.', 'start': 35.807, 'duration': 2.082}, {'end': 45.116, 'text': 'It gives you the ability to create things pretty much, you know, seemingly from nothing and do it pretty fast.', 'start': 38.41, 'duration': 6.706}, {'end': 50.239, 'text': 'So, especially with things like data analysis and all that as well,', 'start': 46.436, 'duration': 3.803}, {'end': 56.163, 'text': "it puts you ahead of pretty much everyone else that isn't using it because they're using Excel or whatever.", 'start': 50.239, 'duration': 5.924}, {'end': 58.724, 'text': 'I really see it as a superpower.', 'start': 56.183, 'duration': 2.541}, {'end': 61.606, 'text': 'It definitely falls under the categories of a superpower.', 'start': 58.744, 'duration': 2.862}], 'summary': 'Learning programming is a life-changing superpower, offering freedom and opportunities.', 'duration': 61.557, 'max_score': 0.049, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY449.jpg'}], 'start': 0.049, 'title': 'Python 3.3 programming superpower', 'summary': 'Introduces the benefits of learning python 3.3, highlighting its potential to provide numerous opportunities and the ability to create things quickly, especially in data analysis, positioning it as a valuable superpower in the modern context.', 'chapters': [{'end': 61.606, 'start': 0.049, 'title': 'Python 3.3 programming superpower', 'summary': 'Introduces the benefits of learning python 3.3, highlighting its potential to provide numerous opportunities and the ability to create things quickly, especially in data analysis, positioning it as a valuable superpower in the modern context.', 'duration': 61.557, 'highlights': ['Learning to program has been one of the best life choices, providing numerous opportunities and freedom to do what one wants.', 'Knowing how to program in Python 3.3 gives the ability to create things quickly, especially in data analysis, positioning it as a valuable superpower in the modern context.', 'It puts individuals ahead of others not using it, particularly in data analysis, creating a significant advantage.', 'The ability to create things seemingly from nothing and do it fast is a key benefit of learning Python 3.3.']}], 'duration': 61.557, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY449.jpg', 'highlights': ['Knowing how to program in Python 3.3 gives the ability to create things quickly, especially in data analysis, positioning it as a valuable superpower in the modern context.', 'The ability to create things seemingly from nothing and do it fast is a key benefit of learning Python 3.3.', 'Learning to program has been one of the best life choices, providing numerous opportunities and freedom to do what one wants.', 'It puts individuals ahead of others not using it, particularly in data analysis, creating a significant advantage.']}, {'end': 620.781, 'segs': [{'end': 107.363, 'src': 'embed', 'start': 84.099, 'weight': 0, 'content': [{'end': 91.747, 'text': 'But I do expect some Python, especially 2.7 users or other versions of 2, sadly maybe even 1.', 'start': 84.099, 'duration': 7.648}, {'end': 96.953, 'text': "And I also know a lot of people that watch my tutorials do it at the same time as they're taking classes.", 'start': 91.747, 'duration': 5.206}, {'end': 102.078, 'text': 'And many times those classes have you using Python 2, not Python 3.', 'start': 97.653, 'duration': 4.425}, {'end': 107.363, 'text': 'One of my buddies just told me that here in 2014 his class is actually using Python 2.', 'start': 102.078, 'duration': 5.285}], 'summary': 'Many people still use python 2 for classes, even in 2014.', 'duration': 23.264, 'max_score': 84.099, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY484099.jpg'}, {'end': 159.339, 'src': 'embed', 'start': 134.58, 'weight': 4, 'content': [{'end': 142.686, 'text': 'Luckily by this time there are a few nifty ways to handle at least using Python 2 and Python 3 together on the same machine.', 'start': 134.58, 'duration': 8.106}, {'end': 144.628, 'text': 'They can even work with each other.', 'start': 143.487, 'duration': 1.141}, {'end': 147.61, 'text': "So I'm going to cover that as well.", 'start': 146.029, 'duration': 1.581}, {'end': 157.798, 'text': 'so both how to run Python 2.7 and 3.3 scripts so I can execute them as well as actually edit them in Idle and work in their specific environments in Idle.', 'start': 147.61, 'duration': 10.188}, {'end': 159.339, 'text': 'So anyways, enough on that.', 'start': 158.218, 'duration': 1.121}], 'summary': 'Ways to handle python 2 and 3 on the same machine, including running and editing scripts in idle environments.', 'duration': 24.759, 'max_score': 134.58, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4134580.jpg'}, {'end': 367.487, 'src': 'embed', 'start': 341.45, 'weight': 5, 'content': [{'end': 346.194, 'text': "and that's going to be what you need to put at the top of the script to make sure they execute.", 'start': 341.45, 'duration': 4.744}, {'end': 358.084, 'text': 'And this is only for when you install in the order of Python 2 and then after that you install Python 3 on top of Python 2.', 'start': 346.494, 'duration': 11.59}, {'end': 359.885, 'text': 'As far as I know, someone can let me know.', 'start': 358.084, 'duration': 1.801}, {'end': 367.487, 'text': "But in order to go from Python, let's say you install Python 3 and then you later decide to install Python 2,", 'start': 360.365, 'duration': 7.122}], 'summary': 'To execute scripts, put python 2 before python 3 during installation.', 'duration': 26.037, 'max_score': 341.45, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4341450.jpg'}, {'end': 442.683, 'src': 'heatmap', 'start': 396.202, 'weight': 3, 'content': [{'end': 398.184, 'text': 'Let me just pull this over here.', 'start': 396.202, 'duration': 1.982}, {'end': 403.948, 'text': "Now what I've got here is I've got run 27 and run 33.", 'start': 398.764, 'duration': 5.184}, {'end': 407.31, 'text': 'And so let me go ahead and edit a couple of these.', 'start': 403.948, 'duration': 3.362}, {'end': 410.292, 'text': 'So this one, a couple of these, both of them.', 'start': 408.05, 'duration': 2.242}, {'end': 412.834, 'text': "I'll just edit them both at the same time.", 'start': 411.093, 'duration': 1.741}, {'end': 423.229, 'text': "multitasking. so, as you can see at the top of the script, if you're familiar with programming, this is like your shebang line right.", 'start': 414.383, 'duration': 8.846}, {'end': 427.612, 'text': "so generally, if you're on something like, it's not really too necessary if you're on Windows,", 'start': 423.229, 'duration': 4.383}, {'end': 437.319, 'text': "but if you're on something like Linux and you want to be able to execute Python from the command line without actually saying you know Python in front of it.", 'start': 427.612, 'duration': 9.707}, {'end': 442.683, 'text': "So, if you're like running a cron or something like that, what you would do is you would give the path to Python,", 'start': 438.1, 'duration': 4.583}], 'summary': 'Editing runs 27 and 33 simultaneously for efficient multitasking.', 'duration': 46.481, 'max_score': 396.202, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4396202.jpg'}], 'start': 62.166, 'title': 'Python versions and transition', 'summary': 'Discusses the challenges and reasons for using different python versions, including the need for transition from python 2 to python 3, highlighted by the prevalence of python 2 usage in tutorial watchers and classroom settings as of 2014.', 'chapters': [{'end': 134, 'start': 62.166, 'title': 'Python versions and transition', 'summary': 'Discusses the challenges and reasons for using different python versions, including the need for transition from python 2 to python 3, highlighted by the prevalence of python 2 usage in tutorial watchers and classroom settings as of 2014.', 'duration': 71.834, 'highlights': ['The prevalence of Python 2 usage is highlighted by the mention of tutorial watchers and classroom settings still using Python 2, with reference to a class in 2014.', 'The speaker acknowledges the need for transition from Python 2 to Python 3, as indicated by their efforts to update their material from 2.7 to 3.3.', 'The chapter emphasizes the challenges of using different Python versions, including the potential need to accommodate 2.7 users and the effort required to update coursework, such as from Python 2.5 to Python 3.3.']}, {'end': 620.781, 'start': 134.58, 'title': 'Python 3.3 installation and running multiple versions', 'summary': 'Covers the installation of python 3.3 and outlines the process of running scripts in both python 2.7 and 3.3, highlighting the importance of installing python 3 last for default behavior, and the necessity to specify the version at the top of the script.', 'duration': 486.201, 'highlights': ['The importance of installing Python 3 last for default behavior It is recommended to install Python 3 after Python 2.7 to ensure Python 3 becomes the default version.', 'The necessity to specify the version at the top of the script The script needs to specify the version of Python to be used at the top, especially when running multiple versions of Python on the same machine.', 'Explanation of how to run scripts in both Python 2.7 and 3.3 The chapter provides guidance on running scripts in both Python 2.7 and 3.3, demonstrating the process of creating and running scripts in both versions.']}], 'duration': 558.615, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY462166.jpg', 'highlights': ['The chapter emphasizes the challenges of using different Python versions, including the potential need to accommodate 2.7 users and the effort required to update coursework, such as from Python 2.5 to Python 3.3.', 'The prevalence of Python 2 usage is highlighted by the mention of tutorial watchers and classroom settings still using Python 2, with reference to a class in 2014.', 'The speaker acknowledges the need for transition from Python 2 to Python 3, as indicated by their efforts to update their material from 2.7 to 3.3.', 'The necessity to specify the version at the top of the script The script needs to specify the version of Python to be used at the top, especially when running multiple versions of Python on the same machine.', 'Explanation of how to run scripts in both Python 2.7 and 3.3 The chapter provides guidance on running scripts in both Python 2.7 and 3.3, demonstrating the process of creating and running scripts in both versions.', 'The importance of installing Python 3 last for default behavior It is recommended to install Python 3 after Python 2.7 to ensure Python 3 becomes the default version.']}, {'end': 945.596, 'segs': [{'end': 703.079, 'src': 'embed', 'start': 637.452, 'weight': 0, 'content': [{'end': 641.653, 'text': "If you're on Windows, you should be able to go to your start bar, or really any machine, you should be able to go to your start bar.", 'start': 637.452, 'duration': 4.201}, {'end': 644.394, 'text': 'And then you go, you know, all programs.', 'start': 642.253, 'duration': 2.141}, {'end': 649.495, 'text': "And at least for me, mine's going to, like I've seen Python 2.7 and 3.3 here.", 'start': 644.434, 'duration': 5.061}, {'end': 652.596, 'text': 'So since we used Python 3.3, you should click on that.', 'start': 649.915, 'duration': 2.681}, {'end': 654.016, 'text': 'And in fact, let me bring my.', 'start': 652.836, 'duration': 1.18}, {'end': 660.221, 'text': 'window down here So here it is, 3.3.', 'start': 654.738, 'duration': 5.483}, {'end': 665.485, 'text': 'And then here you have idle, module docs, Python command line, uninstall, and manuals.', 'start': 660.221, 'duration': 5.264}, {'end': 671.148, 'text': "So the command line, when you click on that, that's going to bring up kind of like a live interpreter for you.", 'start': 667.086, 'duration': 4.062}, {'end': 677.733, 'text': "And so what you can do is you can do stuff like this, like print high, right? And that's going to print out high for you.", 'start': 671.549, 'duration': 6.184}, {'end': 683.997, 'text': "And you can code straight in here, but I don't actually like doing it because it is live.", 'start': 678.393, 'duration': 5.604}, {'end': 686.879, 'text': "And so it's a little tedious to use it.", 'start': 684.457, 'duration': 2.422}, {'end': 692.755, 'text': "because it's going to work your program step-by-step.", 'start': 688.393, 'duration': 4.362}, {'end': 696.136, 'text': 'Now, in some senses, like for debugging purposes, that can be useful.', 'start': 692.775, 'duration': 3.361}, {'end': 698.197, 'text': "But also, there's no easy way to save this.", 'start': 696.536, 'duration': 1.661}, {'end': 703.079, 'text': 'So really, only for really short tests and stuff like that would I recommend using this.', 'start': 698.357, 'duration': 4.722}], 'summary': 'Using python 3.3 on windows, accessing and using python command line for live interpreter, suitable for short tests.', 'duration': 65.627, 'max_score': 637.452, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4637452.jpg'}, {'end': 770.086, 'src': 'embed', 'start': 744.676, 'weight': 2, 'content': [{'end': 751.358, 'text': 'so I showed you guys how to actually run the script in Whatever version you want.', 'start': 744.676, 'duration': 6.682}, {'end': 752.358, 'text': 'but check this out.', 'start': 751.358, 'duration': 1}, {'end': 758.52, 'text': "if I right-click here, like generally, once you've installed python, You should have an edit with ID le if we click on that, even though.", 'start': 752.358, 'duration': 6.162}, {'end': 759.64, 'text': "It's python 2, 7.", 'start': 758.54, 'duration': 1.1}, {'end': 761.401, 'text': "right, That's the one we've wanted.", 'start': 759.64, 'duration': 1.761}, {'end': 770.086, 'text': "but if we click on that and hit run run module, It's actually, as you can see at the top here, 3, 3, and it sure enough ran in 3, 3..", 'start': 761.401, 'duration': 8.685}], 'summary': 'Demonstrated running script in python 2.7, but it actually ran in 3.3.', 'duration': 25.41, 'max_score': 744.676, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4744676.jpg'}, {'end': 931.038, 'src': 'embed', 'start': 886.96, 'weight': 3, 'content': [{'end': 898.063, 'text': 'Well in 2.7, so if you are brand new to Python and some teacher is making you use 2.7 or 2.5, when you go to save originally, you must add the .', 'start': 886.96, 'duration': 11.103}, {'end': 899.063, 'text': 'py at the end.', 'start': 898.063, 'duration': 1}, {'end': 903.784, 'text': "Otherwise it's going to save it as like a blank text or like a regular text file and that's kind of annoying.", 'start': 899.363, 'duration': 4.421}, {'end': 906.525, 'text': "So I see they fixed that in Python 3 so that's great.", 'start': 903.804, 'duration': 2.721}, {'end': 913.989, 'text': 'So, very long installation and how to run all the various versions if you want to.', 'start': 907.925, 'duration': 6.064}, {'end': 920.812, 'text': "But there's definitely a ton of questions online about how to get both running at the same time.", 'start': 915.109, 'duration': 5.703}, {'end': 928.317, 'text': "And generally, if you're going to do Python right, at least at the moment, there's going to be times where you might need Python 2.7.", 'start': 921.353, 'duration': 6.964}, {'end': 929.577, 'text': "So that's how you can do it.", 'start': 928.317, 'duration': 1.26}, {'end': 931.038, 'text': "That's how you can get yourself all set up.", 'start': 929.617, 'duration': 1.421}], 'summary': 'Python 2.7 requires .py extension for saving; python 3 fixed this. both versions can be run concurrently for specific needs.', 'duration': 44.078, 'max_score': 886.96, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4886960.jpg'}], 'start': 621.263, 'title': 'Python installation, basic usage, and running multiple versions with idle', 'summary': 'Covers python installation and basic usage on windows, including accessing python through the start bar and utilizing the command line. it also explains running multiple python versions using idle, including the process of opening and running scripts in different versions, and the necessity of having both versions for programming purposes.', 'chapters': [{'end': 703.079, 'start': 621.263, 'title': 'Python installation and basic usage', 'summary': 'Covers the installation of python and basic usage on windows, including accessing python through the start bar and utilizing the command line to run python code and testing small scripts.', 'duration': 81.816, 'highlights': ['Accessing Python through the start bar on Windows by navigating to all programs and selecting the appropriate Python version.', 'Utilizing the Python command line to run Python code and access a live interpreter.', 'The command line allows running and testing small scripts but is not recommended for coding due to its live nature and lack of easy saving functionality.']}, {'end': 945.596, 'start': 703.579, 'title': 'Running multiple python versions with idle', 'summary': 'Explains how to run multiple python versions using idle, including the process of opening and running scripts in different versions, the importance of adding .py when saving in python 2.7, and the necessity of having both versions for programming purposes.', 'duration': 242.017, 'highlights': ["To run scripts in different Python versions using IDLE, it's important to open the desired version of IDLE and use the 'File' menu to open and run scripts in that specific version, ensuring the necessary version is being utilized for editing and running the code.", "When saving a script in Python 2.7, it's crucial to add '.py' at the end, as failing to do so may result in the script being saved as a blank text file, highlighting the importance of correctly saving files in Python 2.7 to avoid potential issues.", 'Being able to run both Python 2.7 and 3.3 is essential for programming, as there are situations where programming in Python 2.7 is necessary, emphasizing the importance of having the capability to work with multiple Python versions for programming purposes.']}], 'duration': 324.333, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IX6mc9l6tY4/pics/IX6mc9l6tY4621263.jpg', 'highlights': ['Accessing Python through the start bar on Windows by navigating to all programs and selecting the appropriate Python version.', 'Utilizing the Python command line to run Python code and access a live interpreter.', "To run scripts in different Python versions using IDLE, it's important to open the desired version of IDLE and use the 'File' menu to open and run scripts in that specific version, ensuring the necessary version is being utilized for editing and running the code.", "When saving a script in Python 2.7, it's crucial to add '.py' at the end, as failing to do so may result in the script being saved as a blank text file, highlighting the importance of correctly saving files in Python 2.7 to avoid potential issues.", 'Being able to run both Python 2.7 and 3.3 is essential for programming, as there are situations where programming in Python 2.7 is necessary, emphasizing the importance of having the capability to work with multiple Python versions for programming purposes.', 'The command line allows running and testing small scripts but is not recommended for coding due to its live nature and lack of easy saving functionality.']}], 'highlights': ['Learning python 3.3 offers numerous opportunities and quick creation, especially in data analysis, positioning it as a valuable superpower.', 'Knowing how to program in Python 3.3 gives the ability to create things quickly, especially in data analysis, positioning it as a valuable superpower in the modern context.', 'The ability to create things seemingly from nothing and do it fast is a key benefit of learning Python 3.3.', 'Learning to program has been one of the best life choices, providing numerous opportunities and freedom to do what one wants.', 'It puts individuals ahead of others not using it, particularly in data analysis, creating a significant advantage.', 'The chapter emphasizes the challenges of using different Python versions, including the potential need to accommodate 2.7 users and the effort required to update coursework, such as from Python 2.5 to Python 3.3.', 'The prevalence of Python 2 usage is highlighted by the mention of tutorial watchers and classroom settings still using Python 2, with reference to a class in 2014.', 'The speaker acknowledges the need for transition from Python 2 to Python 3, as indicated by their efforts to update their material from 2.7 to 3.3.', 'The necessity to specify the version at the top of the script The script needs to specify the version of Python to be used at the top, especially when running multiple versions of Python on the same machine.', 'Explanation of how to run scripts in both Python 2.7 and 3.3 The chapter provides guidance on running scripts in both Python 2.7 and 3.3, demonstrating the process of creating and running scripts in both versions.', 'The importance of installing Python 3 last for default behavior It is recommended to install Python 3 after Python 2.7 to ensure Python 3 becomes the default version.', 'Accessing Python through the start bar on Windows by navigating to all programs and selecting the appropriate Python version.', 'Utilizing the Python command line to run Python code and access a live interpreter.', "To run scripts in different Python versions using IDLE, it's important to open the desired version of IDLE and use the 'File' menu to open and run scripts in that specific version, ensuring the necessary version is being utilized for editing and running the code.", "When saving a script in Python 2.7, it's crucial to add '.py' at the end, as failing to do so may result in the script being saved as a blank text file, highlighting the importance of correctly saving files in Python 2.7 to avoid potential issues.", 'Being able to run both Python 2.7 and 3.3 is essential for programming, as there are situations where programming in Python 2.7 is necessary, emphasizing the importance of having the capability to work with multiple Python versions for programming purposes.', 'The command line allows running and testing small scripts but is not recommended for coding due to its live nature and lack of easy saving functionality.']}