Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
Good morning, I have created a little software for photo retouch by PIL python. By py2exe i have created an exe version from my .py file. In my dist and build folder I can find PIL module pyc and every file that permit at my program to work on every computer without python.Now i would distribute this program freeware (only .exe and not the source code) by a my web site. I read on PIL software license this
Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.
If i have only .pyc file in my distr and build folder created by py2exe how can I maintain the copyright notice?
In a day, my web site will have many visit perhaps i will put ADsense Google to have little profit, are there any PIL license violation? About license, distribution I'm very confused...could someone help me?
As long as you put the notice in the documentation of your program, you're free to distribute your program.
Regarding the advertisement in the license, it concerns only the advertising of your own program. It means you're not allowed to use the name of Secret Labs AB on the download page of your program, or on an ad if you're buying ad space to distribute your program for example.
Adding to ssidorenko answer: If you really want to make sure to contain the copyright notice on your packaged executable, maybe add it as a "docstring" to the source code, and then it should be contained in the generated *.pyc as well. (I see py2exe can be configured at setup time to generate optimized *.pyo files - in that case, do not use the -OO when running python setup.py py2exe, as it will remove docstrings from the generated *.pyo file.) You can make clear in the docstring that this is the notice for PIL e.g. by saying "This software contains PIL with the following copyright notice:..."
Related
I'm trying to follow the PyCharm instructions on linking a local Python PyCharm project with a GitHub repository. The instructions take the user through the steps necessary to create and initiate a GitHub repository from the comfort of PyCharm. It then goes into checking in your code etc.
Unfortunately, I've done things a little bit differently, causing a bit of a roadblock.
I created a GitHub repository online, adding the readme and license data. This puts me out of sync with the PyCharm instructions (that step could have been done within PyCharm). So, my question is, how do I synch a PyCharm project up with an existing but otherwise empty GitHub repository?
Edit #1
In response to some of the comments (thanks for your time and attention), I want to know how to do this only through PyCharm due to the mixed experience in my team. This work is for several users who aren't going to be computer-savvy. There is me (the software engineer/scientist) and several medical doctors. The med doctors will edit text files while I do the actual development. I'd rather they did everything through PyCharm for reasons of technical consistency (different machines, text encoding, you name it).
This is also why this question is not a duplicate.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have a Python project in PyCharm and I'd like to automatically generate API documentation (in the form of HTML) from my Python code and docstrings.
According to this page, there are a number of tools that generate Python API documentation:
autosummary
autodoc
pdoc
PyDoc
pydoctor
Doxygen
The page additionally notes that the following tools "process documentation":
DocUtils
Sphinx
The PyCharm documentation says that DocUtils and Sphinx can be used to "produce the formatted API documentation". However, this seems to be incorrect, as their configuration indicates that those tools process only *.rst files, not *.py files.
My question is this: Can I use the DocUtils or Sphinx features of PyCharm to generate the API documentation?
Failing that, can I use any features of PyCharm to do this?
Failing that, are there any tools to do this that integrate well with PyCharm?
I also stumbled on this problem in short:
My question is this: Can I use the DocUtils or Sphinx features of PyCharm to generate the API documentation?
No. However, you can use PyCharm to quickly view documentation ctrl+Q and it will be nicely formatted with links,tables etc.
Failing that, can I use any features of PyCharm to do this?
Not really, PyCharm can only insert documentation stub for functions and methods but it cannot do an api discovery to automatically comment everything it also cannot create rst documents stub.
Failing that, are there any tools to do this that integrate well with PyCharm?
Yes :) sphinx-apidoc it is a tool that will automatically create rst documents from your code. There is also less known autoapi
You just point to the root directory and voila it can even include members without doc string. It really just create a simple rst document using automodule syntax. After that you can just run sphinx task from PyCharm and you have a documentation of your code you can even use a theme like sphinx_rtd_theme to make it look really nice.
Example:
sphinx-apidoc -o source/ ../
Assuming you created a doc folder inside you project, then cd doc and used sphinx-quickstart the above command goes up to parent directory to discover any source file and document them. The result is stored in <project>/doc/source folder. Among other files there will be a modules.rst pulling all auto generated files together.
Then in your index.rst you add a line in .. toctree:: ... source/modules
EDIT
Recently I found a new tool to which I quickly switched seeing how easy it is to use pdoc3
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
Why python is available in .msi format in python.org for windows platform.
Why isn't it available in the conventional .exe format?
Here, what are the advantages of .msi format, compared to .exe format?
MSI Is a database file.
It can contain a cabinet file, with binary data, but it is not required.
The MSI database is used to tell a "package manager" how to install a program.
This will in all normal windows installations be "msiexec" (The built in microsoft windows installer).
The database holds information about which files to copy where, what to write in the windows registry, which programs to run after files are copied, and similar information.
The advantages of using a package manager, is that the program can be easily uninstalled, repaired, or upgraded after initial installation.
EXE is an assembly, (program).
Depending on who wrote it, it could be a very good tool, a stand alone program, an installer, an autoextraction of a zip file, a virus, a hacker tool, or all of the above. You have no way of knowing without reverse engineering it, or trying to run it..
Tools exists that can build an executable which basicly just runs msiexec on an embedded msi file. Thats desireable if you dont want the users to modify the database and redistribute it.
The list of pros and cons are longer.
MSI is the file extension for Windows Installer. It's perfectly fine for an installer to have this extension.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I'm a designer who writes mostly Sass, Less (CSS pre-processors), HTML, Javascript and usually starts off with static site generators such as Jekyll, Yeoman, etc. While working with developers who code in Python, Ruby, Clojure, I help with the templates. In my free time, I design wordpress themes and write plugins in PHP. I run grunt regularly and bower helps me with components that I need for my designs.
This means my system is littered with Ruby Gems, Python libraries, Node Modules. They are either installed via gem installations, pip, brew or npm. Now you realize that my system is a mess even though it works. I really want to do stuffs in a sane manner, the right way.
So, what are the best practices for installation and management of all the libraries, core tools, etc. for a developer on Mac OS X. Point me to resources that I can read, ponder and practice.
Here is the scenario. You're a seasoned developer and I'm your friend who just got a new Mac OS X system. I'm a designer who will work with Python (mostly with Django), Ruby (with Rails), Clojure, PHP, Sass, Less, Compass, CoffeeScript, Git, NodeJS, Grunt, Bower, Jekyll, Yeoman and alike. As a friend, you know that I'm not a 'programmer' but a developer-friendly 'designer'. How can you help me setup my Mac? And I don't want to come back again when I get a new Mac in future, I should be able to just transition smoothly from my old setup.
Thanking in anticipation.
Github open sourced there developer environment setup tools. You could try that out. http://boxen.github.com/
For python I recommend using virtualenv to setup libraries instead of installing them globally. https://pypi.python.org/pypi/virtualenv
I am not sure what you meant by "How can you help me setup my Mac?". It seems that you are very much comfortable installing all the dependencies(gems and all) for your projects. If you want to automate all these environment installation setup then you may go ahead and write a generic shell script to install ruby, python and other stuff and reuse when you have a new machine :) and it has nothing to do with Mac OSX or any other OS. You just need to put correct package/version to fetch and install/compile accordingly in the script.
Would be great if you can put a specific question here in case you are facing technical problem installing any of the above packages.
If all that you are worried about is quickly setting up a new machine, use a backup software to setup the new machine. You can also try to use a custom time machine setup with just the folders that you are interested it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
So I am importing a library (reportlab), which is licensed BSD, but itself uses some libraries that are licensed GPL.
My question is, if I import reportlab into python - do I have to abide by BSD or GPL license?
IANAL. You have to abide by the licenses of all the packages you're using.
However, most would say if you only use the public API of those libraries, and they could theoretically be swapped out for other libraries implementing the same API, your code does not fall under the GPL, only any modifications you make to those libraries.
This is the point of view taken by the Linux kernel development community, for example.
Edit: After looking at the site of reportlab, it is clear that if you don't use the PyXML parser then you're only bound by the BSD license, as you're not using any GPL'd code.
Also, the question was raised in the comments whether your code is affected by the GPL if you don't distribute any GPL'd packages because the GPL primarily deals with modification of the code under the license and redistribution of that code. The answer is that if your code is a derivative work of the GPL'd code, you have to license your code under the GPL whether or not you're redistributing the original GPL'd code.
IANAL. From section 1.3 of the reportlab page here:reportlab licensing you can see they want you to talk to them about a commercial license.
GPL code when linked to BSD code requires you to license the BSD code under GPL - I'm talking static linking here. Dynamic linking to GPLed code is not allowed by non-GPL software - in fact, this is the reason for the existence of the LGPL license which allows dynamic linking from non-(L)GPL code. There is also an exception in the glibc license because they want you to be able to build commercial software with it.
The Linux Kernel developers do not all agree on all aspects of linking issues. If you're building against a standard API (POSIX) then it seems obvious you don't need to be GPL. But their arguments go deeper than that, so I don't think there is a direct comparison.
From the link above: "yRXP, our XML parser, is under the GNU General Public License. This is because the RXP parser underneath it is under this license. If you want to use pyRXP in a closed source project, you have to negotiate with us." This suggests they own pyRPX and can give or sell you a different license for it.
That's similar to the pyQT issue. You can make GPLed software with it, but for commercial stuff you need to pay up. Unless you want to make a commercial product that is GPLed of course.
IANAL either, but I think it doesn't even come into play as long as you are not going to distribute the other software as well. For example, if you just tell your users "you have to install pyRXP in order to use this" (maybe easier if you make that "reportlab"), I think the GPL does not apply to your own code.
EDIT: While there is no problem with using the reportlab toolkit in this particular case, the above interpretation does not seem to be correct (see agf's comments on this answer below, as well as his own answer)
Note that the reportlab toolkit (although it's by the same company "ReportLab") doesn't necessarily use pyRXP. They are two different things, each with it's own license.
Looking at reportlab's source code, in reportlab.lib.rparsexml, it seems that pyRXP is only imported if it is installed (separately, because it is not included), and it uses another xml parser if pyRXP is not available. (I guess this is their way of allowing pyRXP to be used, and still keeping reportlab under BSD license)
But maybe you'd best ask on the reportlab mailing list...