I am new to the Radish Test Framework and got confused by the way of executing the test using feature files. Please clarify on:
I have installed radish module(pip install radish-bdd) already. Is there any other step to follow?
In the example, it shows to execute like "radish calculator.feature" (sample eg)
How radish behaves as the command, instead i have got it as a directory "/usr/lib/python2.7/site-packages/radish" after pip install.
I'm not entirely sure what the question is. If I understand you, you're having trouble executing tests. With radish installed you'll want to run radish <path_to_feature_file> So for example, lets say that we have a feature file called test.feature which is located in the same directory as we are, we have a few options...
Run only that feature file
radish test.feature
Run every feature file in the current directory
radish .
I am trying to install YouCompleteMe Plugin for VIM. This what I did so far:
I am using Vundle so I added the Plugin to my .vimc
I executed install.py --clang-completer
I added "let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py" to my vimrc
I tried testing it on very simple helloworld program however I am not getting any useful suggestions. For instance, when I type 'std::' I dont get any intelisense.
I confirmed that YCM server is running and there are no errors in the logs.
Interestingly when I execute 'ValueError: Still no compile flags, no completions yet.'
You have to provide a compilation database (easier) or provide compile flags manually.
If you are not using CMake chanches are that you will like Bear.
With bear just clean your project, cd to the build directory and use it to generate the compile_commands.json file. E.g.
$ cd /path/to/your/project/build/directory
$ bear make
$ cp compile_commands.json /path/to/your/project/source/directory
I have a program I've written in c++ which outputs some simulation results to a .csv excel file.
According to some instructions I need to create a simple bash script that would run the .cpp file given the command "$ run_program" ($ is not a part of the command).
I've looked on Stackoverflow and other sites however I have not found a concrete answer to help me. I would also greatly appreciate it if those who answer can take some time to explain what the parameters mean.
Thank you.
How I should make a bash script to run a C++ program?
This is one of the links I've looked at, however I could not make heads or tails out of this.
i dont know the command you are using to compile your c++ program but this might help you.
Create a file with ".sh" extension and open it with your favorite text editor.
Paste this code (change compiling line with line you are using to compile your progam)
#!/bin/bash
#Run this in terminal
#+ Command to compile c++ program. here i used common one
g++ filename.cpp -o anyname
exit 0
Now you need to run this script, To do this open a terminal
chmod u+x scriptname.sh
Then run the script by ./scriptname.sh
Hopefully this will compile your program.
It sounds like a Makefile is what you are looking for here. Definitely worth getting a handle on if you deal with programming.
The pylzma library is a requirement for another tool that I would like to use. I am new to python and programming and have a few questions:
I have already followed the procedure to download and install pylzma from the following site since it seems to be the easiest:
https://code.google.com/p/threadzip/wiki/InstallingPylzma
But I get stuck at the byte compile py7zlib part.
How do I byte compile py7zlib?
When I check the documentation on the authors page http://www.joachim-bauch.de/projects/pylzma/ and go to the designated folder I see the following files:
In the /tmp/pylzma-0.4.6/build/lib.linux-i686-2.7 folder I see:
py7lib.py py7zlib.pyc pylzma.so
But no the "py7zlib.pwd" as stated on the authors page however I do see the "py7zlib.pyc" as stated on the original page listed.
Do I still need to compile this bytecode?
When I "import py7lib" in at the python prompt I see nothing, no feedback or error.
How do I check to see if this has been correctly imported and that I have installed this library correctly?
Thank you for your feedback.
I have a need to wrap an existing C++ library for use in Python. After reading through this answer on choosing an appropriate method to wrap C++ for use in Python, I decided to go with Py++.
I walked through the tutorial for Py++, using the tutorial files, and I got the expected output in generated.cpp, but I haven't figured out what to do in order to actually use the generated code as an extension I can import in Python. I'm sure I have to compile the code, now, but with what? Am I supposed to use bjam?
Py++ generates you syntax you use along with boost::python to generate python entry points in your app.
Assuming everything went well with Py++ you need to download the Boost framework, and add the boost include directory and the boost::python lib to your project then compile with the Py++ generated cpp.
You can use whatever build system you want for your project, but boost is built with bjam. You need to choose whether you want a static lib or a dynamic boost python lib then follow the instructions for building boost here.
If on windows, you need to change the extension on your built library from .dll to.pyd. And yes it needs to be a library project, this does not work with executables.
Then, place the pyd where the python on your machine can find it and go into python and execute import [Your-library-name] and hopefully everything will work.
One final note, the name given in generated.cpp in this macro:
BOOST_PYTHON_MODULE( -name- )
needs to be the exact name of your project, otherwise python will complain.
I just went through all this less than a month ago so I know about the confusion.
One thing I did to make my python extension very easy to use while building the library and testing, was to build boost::python and python myself in my build environment. That way the pyd ends up exactly where I want it and users do not need to install python in order to run with my extension. That may be overkill for what you are doing though.
Edit:
If you want your extension to be easily installed and compiled on a machine, check out python's setuptools. With just a few simple lines you can have python compile and install your package for you. One downside though is its not IDE compatible for those of us who like developing in visual studio.
The following answer was provided to me by Roman Yakovenko on the Python C++-sig mailing list; I'm posting it here, with minor edits, for the benefit of the Stack Overflow community.
I don't fully comprehend the answer yet, but I felt it points me in the right direction.
After you have generated the code, you have to compile it. For this purpose, you can use your favorite build system. I use bjam only to compile boost. After this, I prefer to use scons (on Windows and on Linux).
The following is an example of sconstruct file, which is used to compile one of the Py++ unittests (this is generated code too :-) ):
import sys
env = Environment()
if 'linux' not in sys.platform:
env['MSVS'] = {'VERSION': ''}
env['MSVS_VERSION'] = ''
Tool('msvc')(env)
t = env.SharedLibrary(
target=r'abstract_classes',
source=[r'/home/roman/language-binding/sources/pyplusplus_dev/unittests/temp/abstract_classes.cpp'],
LIBS=[r"boost_python"],
LIBPATH=[r"", r"/home/roman/include/libs"],
CPPPATH=[
r"/home/roman/boost_svn",
r"/usr/include/python2.6",
r"/home/roman/language-binding/sources/pyplusplus_dev/unittests/temp",
r"/home/roman/language-binding/sources/pyplusplus_dev/unittests/data",
r"/home/roman/boost_svn"
],
CCFLAGS=[ ],
SHLIBPREFIX='',
SHLIBSUFFIX='.so'
)
Since your code generator written in Python, you can continue where Py++ stops and generate your favorite "make" file. You can go even father. Py++ tests generate the code, compile, load the new module and test the functionality. All this is done in a single, stand alone process.
I wrote a small makefile with the following:
GNUmakefile:
PYTHON_INC=$(shell python-config --includes)
PYTHON_LIBS=$(shell python-config --libs)
BOOST_LIBS=-lboost_python
all:
g++ -W -Wall $(PYTHON_INC) $(PYTHON_LIBS) $(BOOST_LIBS) -fPIC -shared generated.cpp -o hw.so
and then loaded the created .so into ipython to play around with it:
In [1]: import hw
In [2]: a = hw.animal('zebra')
In [3]: a.name()
Out[3]: 'zebra'